JAVA_45_메소드에 예외 선언
예외 처리하는 방법
1. 직접 처리
: try-catch
2. 떠넘기기 : 메소드에 예외 선언
:✨throws
-
메소드 호출 시 발생가능한 예외를 호출하는 쪽에 알리는 것
-
그 메소드에서
try-catch
로 해서 메인은 모르는 쪽으로 하든지, 아니면 메인에서try-catch
로 하든지 어찌됐든 예외처리 해줘야 함
void method() throws Exception1, Exceptoin2, ... ExceptionN { //메소드 내용 throw new Exception("오류메세지"); }
method();
호출하면Exception1
...등의 예외들이 발생할 수 있다는 걸 알려줌- 호출한 쪽은
Exception1
...에 대한try-catch
를 써야 함public static void main() { try { method(); //... } catch(Exception1 e) { // } catch(ExceptionN en) { // } }
아 진짜
import java.io.File;
public class Ex8_10 {
public static void main(String[] args) {
try {
File f = createfile(args[0]); //여기서 오류 발생O/X
System.out.println(f.getName()+"파일이 성공적으로 생성되었습니다.");
//File클래스의 getName():파일에 이름을 반환. 파일이름만 String으로 변환
} catch (Exception e) {
System.out.println(e.getMessage()+" 다시 입력해 주십시오.");
//아래 메소드가 던진 Exception객체 잡음
}
}
//파일을 생성하는 메소드
static File createfile(String fileName) throws Exception {
if((fileName == null) || (fileName.equals(""))) {
throw new Exception("파일이름이 유효하지 않습니다.");
//"에러메세지"가 담긴 예외객체Exception 던짐 : 예외발생시키기
//getMessage() = "에러메세지"
}
File f = new File(fileName);
//진짜로 파일생성할 때 이렇게 객체생성함. 저 안은 파일이름
f.createNewFile(); //File클래스의 creatNewFile()메소드
//파일생성하는 메소드. boolean반환인데 쓸일 없으므로 받는 변수 없음
return f; //그 주소 반환
}
}
args[0]
= ""이나null
하면
-> 예외처리됨!
args[0]
= 예를 들어notitle.txt
하면
finally 블럭
- 예외가 발생하든, 발생하지 않든 어떤 코드를 수행해야 할 때
try {
//
} catch(Exception e) {
//
} finally {
//수행되어야 하는 코드
//try-catch블럭의 맨 마지막에!
}
Ref
Author And Source
이 문제에 관하여(JAVA_45_메소드에 예외 선언), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@lecharl/JAVA45
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
try {
//
} catch(Exception e) {
//
} finally {
//수행되어야 하는 코드
//try-catch블럭의 맨 마지막에!
}
Author And Source
이 문제에 관하여(JAVA_45_메소드에 예외 선언), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@lecharl/JAVA45저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)