YOUNGJIN
자바의 정석 8장( 예외처리 ) 본문
컴파일 에러: 컴파일 시에 발생하는 에러
런타임 에러: 실행 시에 발생하는 에러
논리적 에러: 실행은 되지만, 의도와 다르게 동작하는 것
자바의 런타임 에러
에러: 프로그램 코드에 의해서 수습될 수 없는 심각한 오류
예외: 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류
RuntimeException 클래스들: 프로그래머의 실수로 발생하는 예외
Exception클래스들: 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외
try{
//예외가 발생할 가능성이 있는 문장
}
catch(Exception e){
//Exception이 발생했을 경우, 이를 처리하기 위한 문장
}
멀티 catch 블럭
try{
//예외가 발생할 가능성이 있는 문장
}
catch(ExceptionA|ExceptionB e){
//ExceptionA 또는 ExceptionB가 발생했을 경우, 이를 처리하기 위한 문장
}
try{
throw new Exception("고의로 발생");
}
catch(Exception e){
//Exception이 발생했을 경우, 이를 처리하기 위한 문장
}
보통 Exception을 throw하는 구문에 예외처리가 되어있지 않다면 컴파일 에러가 나지만, RuntimeException과 그 하위클래스들은 예외처리를 강제하지 않기 때문에 컴파일이 가능하다. 하지만 런타임 에러가 발생할 가능성이 있다.
void method throws Exception1, Exception2, ... ExceptionN {
//메서드의 내용
}
try{
//예외가 발생할 가능성이 있는 문장
}
catch(Exception e){
//예외처리를 위한 문장
}
finally{
//예외의 발생여부에 관계없이 항상 마지막에 수행
}
try{
return;
}
finally{
System.out.println("try블럭에서 return문이 실행되더라도 finally블럭은 실행되고 메서드 종료");
}
사용자정의 Exception
class MyException extends Exception{
MyException(String msg){
super(msg);
}
}
'Study > Java' 카테고리의 다른 글
메소드 참조 (0) | 2023.01.13 |
---|---|
자바의 정석 9장 ( java.lang 패키지와 유용한 클래스 ) (0) | 2023.01.11 |
제네릭 메소드 (static?) (0) | 2023.01.01 |
Comparable과 Comparator (0) | 2023.01.01 |
java compareTo의 리턴값에 따른 정렬 방향 (0) | 2022.12.26 |
Comments