반응형
예외 처리
예외 처리 란?
- 실행 중에 생길 수 있는 '예외적인 상황'을 처리할 수 있는 방법.
- 특정 메소드를 호출할 때 예외가 발생할 수 있다는 것을 알고 있다면 문제에 대비할 수 있다.
예외 처리 방법
- try 블록에 예외가 발생할 가능성이 있는 부분을 넣는다.
- catch 블록에 예외적인 상황이 일어났을 때 일을 지정하기 위한 부분을 넣는다.
- catch 블록을 여러 개 사용할 때는 작은 것부터 큰 것으로 나열해야 한다.
상속 트리에서 위로 올라갈 수록 큰 것이다.
// catch(Exception e)를 가장 먼저 사용하면 안된다.
import java.util.*;
public class test {
public static void main(String[] args){
try{
staticTest.test();
}
catch (ArithmeticException e){
System.out.println(e);
System.out.println("예외 발생 : 0으로 나누기");
}
}
}
class staticTest{
static final int a=30;
static void test(){
int ab = 10/0;
}
}
예외 던지기
- 직접 예외를 만들어 던져서 예외를 발생시킨다.
- throw 키워드를 이용하여 예외를 던진다.
- 예외는 언제나 그 메소드를 호출한 곳으로 던져진다.
- 예외를 던지는 메소드에서는 반드시 그 메소드에서 예외를 던질 수 있다는 것을 선언해야 한다.
import java.util.*;
public class test {
public static void main(String[] args){
exceptionTest et=new exceptionTest();
try{
et.test();
}
catch (Exception e){
System.out.println(e);
System.out.println("예외 던지기");
}
}
}
class exceptionTest{
static final int a=30;
public void test() throws Exception{
throw new Exception();
}
}
finally
- 예외 발생 여부와 상관없이 무조건 실행할 코드는 finally 블록에 넣는다.
(try 블록이나 catch 블록에서 return을 해도, finally 블록은 실행된다.)
- try 블록 실패 시 catch 블록 실행이 되고, 그 이후에 finally 블록이 실행된다.
- try 블록 성공 시, catch 블록은 건너 뛰고, 그 이후에 finally 블록이 실행된다.
- try 또는 catch 블록에 return 선언문이 있어도 finally 블록은 실행된다.
import java.util.*;
public class test {
public static void main(String[] args){
exceptionTest et=new exceptionTest();
try{
et.test();
}
catch (Exception e){
System.out.println("예외 던지기");
}
finally {
System.out.println("무조건 실행");
}
}
}
class exceptionTest{
static final int a=30;
public void test() throws Exception{
throw new Exception();
}
}
반응형
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
[JAVA] String, StringBuilder, StringBuffer (0) | 2021.01.20 |
---|---|
[JAVA] 스레드(Thread) (0) | 2021.01.20 |
[JAVA] 인터페이스(Interface) (0) | 2021.01.20 |
[JAVA] 추상 클래스(Abstract Class) & 추상 메소드(Abstract Method) (0) | 2021.01.20 |
[JAVA] 오버라이딩(Overriding) 과 오버로딩(Overloading) // 다형성 (0) | 2021.01.20 |
댓글