보통 웹개발에서 생각하는 오류는 네트워크나 사용자쪽 문제라서 많이들 트라이 캐치로 오류를 잡는거라고 생각합니다
(이건 외부 환경에서 어떤 조건이 들어올지 알 수 없기 때문에 특별한 방법이 없는거같습니다)

그러나 개발자와 개발자 사이에서 서로 만들어둔 함수를 호출하면서 개발하고 버그를 잡을 때는
assert만큼 비용이 적고 디버깅도 잘 되는 수단이 없다고 생각합니다
테스트코드처럼 작성에 추가비용이 많이 필요한 것도 아니고
내가 한 가정이 제대로 작동하는지 코드에 박아두고 개발단계에서 이상하게 호출하는 동료가 있으면 바로 검증이 되거든요

아무튼 둘 다 섞어서 쓰는게 맞기는 한데
개발환경에 따라서 어느 것이 더 사용되느냐 차이가 나고 개발이 모두 웹개발은 아니기 때문에
모든 오류를 예외처리로 던질 필요는 없는 것 같습니다