프로그래밍 언어/JAVA
[JAVA] 예외 처리 코드(try-catch-finally)
김곰댕
2021. 7. 23. 17:08
728x90
예외 처리 코드
예외가 발생하면 프로그램 종료를 막고, 정상 실행을 유지할 수 있도록 처리하는 코드
- 일반 예외 : 반드시 작성해야 컴파일 됨
- 실행 예외 : 컴파일시 요구하지 않고 경험에 의해서 작성해야 함
try - catch - finally 구문을 이용해서 예외 처리 코드를 작성한다.
- finally는 옵션 (작성해도 좋고 작성하지 않아도 상관 없음)

예제)
1. 일반예외처리
package sec03_try_catch_finally;
public class TryCatchFinallyExample
{
public static void main(String[] args)
{
//일반 예외 처리
//예외가 발생헀을 때 프로그램이 종료되는것을 막기 위해 사용
try
{
Class clazz = Class.forName("java.lang.String"); //Class.forName() : ()안의 클래스를 찾아서 클래스 객체로 만들어 return / 해당 클래스가 없으면 리턴이 불가능
System.out.println("클래스를 찾았습니다.");
}
catch(ClassNotFoundException e) // try에서 catch() 안의 예외가 발생하면 {} 안이 실행
{
System.out.println("클래스가 존재하지 않습니다.");
}
finally //예외가 발생하지 않아도 실행하며, 예외가 발생하면 catch가 끝난후에 실행
{
System.out.println("프로그램을 안전하게 종료합니다.");
}
}
}

2. RunTimeException
package sec03_try_catch_finally;
public class TryCatchFinallyRuntimeExceptionExample
{
public static void main(String[] args)
{
String data1 = null;
String data2 = null;
try
{
data1 = args[0];
data2 = args[1];
}
catch(ArrayIndexOutOfBoundsException e)
{
System.out.println("실행 매개값의 수가 부족합니다.");
System.out.println("[실행방법]");
System.out.println("java TryCatchFinallyRuntimeExceptionExample num1 num2");
return; //메소드를 종료
}
try
{
int value1 = Integer.parseInt(data1); //문자열을 정수화
int value2 = Integer.parseInt(data2); //문자열을 정수화
int result = value1 + value2;
System.out.println(data1 + "+" + data2 + "=" + result);
}
catch(NumberFormatException e)
{
System.out.println("숫자로 변환할 수 없습니다.");
}
finally
{
System.out.println("다시 실행해 주세요");
}
}
}






728x90