레퍼런스) https://ducktopia.tistory.com/85
예외처리를 잘해야 잘하는 개발자라는 얘기를 꽤 들어보았습니다.
하지만 코딩을 하기 급급해서 뭐가 예외인거지? 라는 생각이
스쳐 지나갔던 적이 꽤 있습니다.
if문으로 감싸서 다른 케이스를 처리하는 경우도 포함되는가?
라는 생각도 해보고 말이죠(저만 했을수도..)
예외는 크게 두 가지로 나뉘게 됩니다.
A) Checked Exception vs Unchecked Exception
Checked Exception
- 컴파일러가 예외처리를 강제하는 예외
- 반드시 예외처리를 해줘야 하는 예외(프로그램이 중단됨)
- IOException, FileNotFoundException 등
Unchecked Exception
- 컴파일러가 예외처리를 강제하지 않는 예외
- 예외처리를 안하더라도 중단이 안되는 예외
- ArrayIndexOutOfBoundsException, NullPointerException 등
위처럼 두 에러의 차이는 컴파일러가 가능하냐
즉, 프로그램 실행 자체가 중단되냐 아니냐로 나뉩니다.
B) Unchecked Exception 예외 처리를 꼭 해야 할까?
하는 것이 좋습니다.
정확히는 해당 예외 자체로 문제가 생기지는 않습니다만
기대하지 못한 형태의 값이 나오기 때문에 이후에
문제를 야기하면서 프로그램이 중단될 수 있습니다.
예를 들어, NullPointerException이 발생한다면
컴파일은 되지만 중단되지 않습니다 하지만
특정 값은 null을 가진다는 것이고 이는 충분히
다음 진행에 있어 문제를 야기할 수 있기 때문에
예외처리를 해주는 것이 좋습니다.
C) 기타 에러(System Error)
예외처리가 불가능한 에러가 있습니다.
StackOverflowError, OutOfMemoryError 등등이 있고
이러한 에러는 시스템과 관련되어 있기에
단순히 Error라고도 부르며, 시스템 에러라고도 부릅니다.
코드를 작성하고 실행할 때 나타나기 어려운 부분이므로
설계에 주된 관점을 둬야하는 에러라고 할 수 있습니다.
'ETC > 읽을거리' 카테고리의 다른 글
[읽을거리] 분기마다 피드백하라 (0) | 2023.05.05 |
---|---|
[읽을거리] chatgpt의 시대 (0) | 2023.04.11 |
읽을거리 카테고리의 목적 (0) | 2023.04.05 |