1. 오류의 복구 가능성
위 같은 오류가 발생했을때 전체 시스템이 작동을 멈춘다면 훌륭한 사용자 경험은 아니다.
적당한 오류 메시지를 송출 하고 사용자가 대처 할 수 있도록 환경을 제공하는 것이 조금 더 나은 방법이다.
하지만 위 같이 오류 발생시에 복구할 수 없는 것이 있다.
오류를 복구할 수 있는 방법이 없다면, 유일하게 코드가 할 수 있는 합리적인 방법은 피해를 최소화하고 개발자가 문제를 발견하고 해결할 가능성을 최대화하는 것이다.
2.견고성 vs 실패
오류가 발생할 때 다음 중 하나를 선택해야 한다.
지금은 실패에대해 더 이야기 해볼 것이다.
신속하게 실패하기는 가능한 한 문제의 실제 발생 지점으로부터 가까운 곳에서 오류를 나타내는 것이다.
두경우 모두 소프트웨어가 의도치 않게 잠재적으로 위험한 상태가 되는 것을 방지한다.
요란한 실패는 간단히 말하자면 오류가 발생하는데도 불구하고 아무도 모르는 상황을 막고자 하는 것이다.
이를 위한 가장 명백한 방법은 예외를 발생해 프로그램이 중단되게 하는 것이다.
코드가 실패할 때 신속하고, 요란하게 오류를 나타내면 개발 도중이나 테스트하는 동안에 버그가 발견될 가능성이 크다. 그렇지 않더라도 배포된 후에 오류 보고를 보기 시작할 것이고 보고 내용으로부터 버그가 발생한 위치를 정확히 알 수 있는 이점이 있다.
3. 오류의 전달 방법
오류의 전달방법에는 명시적 방법과 암시적 방법이 있다.

자바는 검사 예외 와 비검사 예외 의 개념을 모두 가지고 있다.
자바를 제외하고 대부분의 주요언어는 비검사 예외만 가지고 있으므로 거의 모든 언어의 예외라는 용어는 일반적으로 비검사 예외이다.