반응형
예외처리 미루기
- throws를 사용하여 예외처리를 미룬다.
- 메서드 선언부에 throws를 추가한다.
- 예외가 발생한 메서드에서 예외 처리를 하지 않고, 이 메서드를 호출한 곳에서 예외처리를 한다는 의미
- main() 메서드에서 throws를 사용하면 가상머신에서 처리된다.
[실습]throws로 예외 미루기
import java.io.FileInputStream;
import java.io.FileNotFoundException;
public class ThrowsExceptionTest {
public Class loadClass(String fileName, String className) throws FileNotFoundException, ClassNotFoundException {
FileInputStream fis = new FileInputStream(fileName);
Class c = Class.forName(className);
return c;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//객체 생성
ThrowsExceptionTest test = new ThrowsExceptionTest();
try {
test.loadClass("a.txt", "java.lang.String");
} catch (FileNotFoundException | ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
try/multi-catch -> 여러 에러를 한번에 처리하기
try/catch -> 예외 상황마다 처리하기
다중 예외 처리시 주의사항
예외가 다양한 경우 가장 최상위 클래스 Exception 클래스에서 예외 처리할 수 있다.
단, Exception 클래스는 모든 예외 클래스의 최상위 클래스 이므로 가장 마지막블록에 위치해야 한다.
[실습] 여러 catch문 사용하기
import java.io.FileInputStream;
import java.io.FileNotFoundException;
public class MultiCatchTest {
public Class loadClass(String fileName, String className)
throws FileNotFoundException, ClassNotFoundException {
FileInputStream fis = new FileInputStream(fileName);
Class c = Class.forName(className);
return c;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
MultiCatchTest test = new MultiCatchTest();
try {
test.loadClass("a.text", "java.lang.String");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch(Exception e) {
e.printStackTrace();
}
}
}
반응형
'Language > JAVA' 카테고리의 다른 글
[JAVA]컬렉션 프레임워크 (0) | 2020.07.02 |
---|---|
[JAVA]제네릭(Generic)프로그래밍 (0) | 2020.07.02 |
[JAVA] 예외처리(try ~ catch) (0) | 2020.07.02 |
[JAVA]Stream - 여행객의 여행비용 계산하기 (0) | 2020.07.02 |
[JAVA] 스트림(Stream) 연산 (0) | 2020.07.02 |
댓글