NOTICE 
Java Exception 에 해당하는 글 : 1 개




  

자바(Java)에서 예외(Exception)를 다루는 간단한 예제



(1)발생한 예외 핸들링하기


try-catch문을 사용하여 try 블럭에서 발생한 예외를 처리할 수 있다.

예제는 0으로 나누기 때문에 예외가 발생한다.


MyClass.java

public class MyClass {

public static void main(String[] args) {

System.out.println("Start");

try {

int a = 100/0;

} catch(ArithmeticException e) {

System.out.println(e.getMessage());

}


System.out.println("End");

}

}



실행결과

Start

/ by zero

End


발생한 에러의 내용을 출력하고 정상 종료한 것을 알 수 있다.



(2)예외 발생시키기


throw를 이용해서 사용자가 예외를 발생시킬 수 있다. 예제에서는 입력값이 0과 100사이를 벗어났을 때 예외를 발생시키고 있다. 또한 예제에서는 발생한 예외를 자신이 처리하지 않고 호출한 메서드로 전달하기 위해 메서드 정의시 "throws 전달할 예외"를 사용하였다.


MyClass.java

public class MyClass {

public static void doSomething(int score) throws Exception {

if(score < 0 || score > 100) {

throw new Exception("score값이 범위(0 <= x <= 100)를 초과하였습니다.");

}

}

public static void main(String[] args) {

System.out.println("Start");

try {

doSomething(-20);

} catch(Exception e) {

System.out.println(e.getMessage());

}


System.out.println("End");

}

}


실행결과

Start

score값이 범위(0 <= x <= 100)를 초과하였습니다.

End


throw한 예외가 main()에서 핸들링된 것을 알 수 있다.



(3)사용자 정의 예외 클래스


Excepion클래스를 상속하면 예외 클래스를 정리할 수 있다.

바로 위의 예제를 사용자 정의 예외 클래스로 구현하였다.


MyClass.java

class MyException extends Exception {

public MyException(String msg) {

super(msg);

}

}


public class MyClass {

public static void doSomething(int score) throws MyException {

if(score < 0 || score > 100) {

throw new MyException("score값이 범위(0 <= x <= 100)를 초과하였습니다.");

}

}

public static void main(String[] args) {

System.out.println("Start");

try {

doSomething(-20);

} catch(MyException e) {

System.out.println(e.getMessage());

}


System.out.println("End");

}

}


Exception클래스를 상속해서 사용자 정의 예외 클래스(MyException)을 정의한 후, 사용자 정의 예외 클래스를 사용하여 예외를 발생시키고 있다. 구현 방법 말고는 위의 예제와 같다.


실행결과

Start

score값이 범위(0 <= x <= 100)를 초과하였습니다.

End


결과 역시 동일하다.



  
트랙백   |  댓글   |
 이전  1   다음 

최근댓글
최근트랙백
fotowall :: ncloud RSS Feeds today :    yesterday :
total :