예측 가능/불가능 상황의 처리법

노트 유형: Cloze

Text

예측 가능한 오류 상황:

  • 고치기 쉬운 경우(안전하게 고칠 수 있는 경우): {{c1::수정 또는 “예외 후 수정”}} — 고치고 프로그램이 계속 진행되는 것이 중요
    • “예외 후 수정”과 수정의 차이: {{c2::수정은 미리 검사해서 바꾸는 것, 예외 후 수정은 오류 발생 후 사후적으로 대응하는 것}}
  • 고치기 어려운 경우: {{c3::예외 + 종료 — 로그는 반드시 남김}} (문제 지점에서 로그 남기고 바로 종료하거나, main()까지 예외를 올려 로그 남기고 종료)

예측 불가능한 오류 상황: 예측을 못했으니 수정 불가능, 문제 지점에서 로그 남기기도 불가능 — 방법 2가지:

  • 예외를 지원하는 언어: {{c4::예외를 main()까지 올려 로그를 남기고 종료}}하는 방법으로 우회
  • 예외를 지원하지 않는 언어(무시 상태): {{c5::크래시 후 메모리 덤프}} — 메모리 덤프는 예외보다 정보가 많아 디버깅에는 오히려 유리하기도 함

Back Extra

  • 고치기 어렵고 쉬운 정도는 주관적임
  • 최종 사용자에게 오류를 보여줄지는 선택 — GUI가 있으면 팝업으로 보여주고 종료

출처: https://pocu-site.pages.dev/pocu-note/COMP2500/013-exception/013-024-handling-predictable-situations/