1-1. 설명 (예외 처리 코드)
예외 처리 코드
프로그램에서 예외가 발생했을 경우 프로그램의 갑작스러운 종료를 막고, 정상 실행을 유지할 수 있도록 처리하는 코드를 예외 처리 코드라고 합니다.
자바 컴파일러는 소스 파일을 컴파일할 때 일반 예외가 발생할 가능성이 있는 코드를 발견하면 컴파일 오류를 발생시켜 개발자로 하여금 강제적으로 예외 처리 코드를 작성하도록 요구합니다.
그러나 실행 예외는 컴파일러가 체크해주지 않기 때문에 예외 처리 코드를 개발자의 경험을 바탕으로 작성해야 합니다. 예외 처리 코드는 try-catch-finally 블록을 이용합니다.
1-2.
try-catch-finally 블록은 생성자 내부와 메소드 내부에서 작성되어 일반 예외와 실행 예외가 발생할 경우 예외처리를 할 수 있도록 해줍니다.
try 블록은 예외 발생 가능한 코드가 위치하고,
예외가 발생하지 않는 다면 catch 블록을 실행하지 않고 finally 블록의 코드를 실행합니다.
예외가 try 블록에서 발생한다면 catch 블록으로 이동하여 catch 블록의 코드를 실행합니다.
finally 블록은 옵션으로 생략가능 합니다.
1-3.
- 사용 예 -
Class.forName() 메서드는 파라미터로 주어진 클래스가 존재하면 Class 객체를 리턴하지만, 존재하지 않으면 ClassNotFoundException 예외를 발생시킵니다.
- 설명 -
위 예제를 실행시키면 1라인에서 ClassNotFoundException이 발생하는데, 이것은 what.class.What 클래스가 존재하지 않기 때문입니다.
1-4.
- 사용 예 -
- 설명 -
위 예외가 발생하는 이유는 실행 파라미터를 주지 않았기 때문입니다.
(값이 없어서)
2-1. 설명 (예외 종류에 따른 처리 코드)
다중 catch
멀티 catch
2-2. 다중 catch (여러개 만드는거)
try 블록 내부는 다양한 종류의 예외가 발생할 수 있습니다. 이 경우에는 다중 catch 블록을 작성하는 것입니다.
catch 블록이 여러 개라 할지라도 예외가 발생하면 단 하나의 예외 catch 블록만을 처리합니다. 그 이유는 try 블록에서 동시 다발적으로 예외가 발생하지 않고, 하나의 예외가 발생하면 즉시 실행을 멈추고 해당 catch 블록으로 이동하기 때문입니다.
- 사용 예 -
- 설명 -
값이 없어
2-3. 멀티 catch (예외 발생 2개 이상을 똑같이 처리하기)
자바 7부터 하나의 catch 블록에서 여러 개의 예외를 처리할 수 있도록 multi catch 기능을 추가했습니다.
catch 괄호 안에 동일하게 처리하고 싶은 예외를 |(파이프)로 연결하면 됩니다.
- 사용 예 -
'■ JAVA > Study' 카테고리의 다른 글
[JAVA] 예외 처리(Exception 처리) - 4.사용자 정의 예외 (0) | 2020.04.22 |
---|---|
[JAVA] 예외 처리(Exception 처리) - 3.리소스 닫기, 예외 넘기기(Throw) (0) | 2020.04.21 |
[JAVA] 예외 처리(Exception 처리) - 1.예외 & 실행 예외 (0) | 2020.04.20 |
[JAVA] 예외 처리(Exception 처리) - 0.기본틀 + throw + throws ★★ (0) | 2020.04.20 |
[JAVA] 어노테이션 이란? (0) | 2020.04.20 |