2swan
try-catch 예시 본문
예외 처리 try-catch
package exception;
// 예외 처리 (try-catch)
public class Exception5 {
public static void main(String[] args) {
ExceptionObj1 exobj = new ExceptionObj1();
int value = exobj.divide(10, 0);
System.out.println(value);
}
}
class ExceptionObj1 {
public int divide(int i, int k) {
int value = 0;
try{
value = i / k;
}catch (ArithmeticException e){
System.out.println("0으로 나눌 수 없습니다.");
}
return value;
}
}
예외 떠넘기기 throws
package exception;
// 예외 떠넘기기 (throws)
public class Exception2 {
public static void main(String[] args) {
ExceptionObj1 exobj = new ExceptionObj1();
try {
int value = exobj.divide(10, 0);
System.out.println(value);
} catch (ArithmeticException e) {
System.out.println("0으로 나눌 수 없습니다.");
}
}
}
class ExceptionObj2 {
public int divide(int i, int k) throws ArithmeticException{
int value = 0;
value = i / k;
return value;
}
}
다중 Exception
package exception;
// 다중 Exception
public class Exception6 {
public static void main(String[] args) {
int[] array = {4, 2};
int[] value = null;
try {
value[0] = array[0] / array[1];
} catch (ArrayIndexOutOfBoundsException aiob) {
System.out.println(aiob.toString());
} catch (ArithmeticException ae) {
System.out.println(ae.toString());
} catch (Exception ex) {
System.out.println(ex.toString());
}
}
}
사용자 정의 Exception
package exception;
// 사용자 정의 Exception과 예외 발생 시키기(throw)
//오류 메시지나 , 발생한 Exception을 감싼 결과로 내가 만든 Exception을 사용하고 싶을 때가 많다.
public class MyExcption extends RuntimeException {
public MyExcption(String message) {
super(message);
}
// Throwable 자리에 Exception 사용가능
public MyExcption(Throwable cause) {
super(cause);
}
}
package exception;
public class Exception7 {
public static void main(String[] args) {
try {
ExceptionObj7 exobj = new ExceptionObj7();
int value = exobj.divide(10, 0);
System.out.println(value);
} catch (MyExcption ex) {
System.out.println("사용자 정의 Exception이 발생합니다.");
}
}
}
class ExceptionObj7 {
public int divide(int i, int k) throws MyExcption{
int value = 0;
try {
value = i / k;
} catch (ArithmeticException ae) {
throw new MyExcption("0으로 나눌 수 없습니다.");
}
return value;
}
}