06 28 정리
throw
예외를 강제로 발생시키는것이 바로 throw 이다
코드를 작성하는 프로그래머가 강제로 예외를 발생시키는 것
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | public static void main(String[] args) { MyException agaE = new MyException("나이입력을 다시 확인 해주십시오"); Scanner sc = new Scanner(System.in); int num = 0; while (true) { System.out.print("나이입력"); num = sc.nextInt(); try { if (num <= 0 || 200 < num) { // 나이입력이 잘못된 수치일 경우 throw agaE; } System.out.println("당신의 나이는 "+num+" 세 입니다"); break; } // 내가만든 오류메세지 catch (MyException e) { System.out.println(e.getMessage()); } // 발견못한 예외처리 확인 catch (Exception e) { e.printStackTrace(); System.out.println("발견못한 예외처리"); } // 예외발생 했을 경우에도 잘못입력 했을경우 다시 입력받기위해 finally { if (num <= 0 || 200 < num) { continue; } } } | cs |
위의 코드 사용을 위해 throw를 이용하여
필요한 부분에만 throw를 던지고 try & catch로 감싸고
MyException 객체를 생성하여
원하는 문구로 예외처리를 표현할 수 있다!
throws
예외를 강제로 발생시키는데 메소드의 옆에 붙여 사용하고
public void method( ) throws Exception이름 {
}
메소드 바디 안에서는 지정한 Exception은
해당메소드를 호출한 사용자가 try & catch를 해야한다
" 이 메소드 이런 오류 나올껀데, 사용하는 너가 try & catch해서 사용해! "
이미 우린 throws Exception 되있는 메소드를 사용해보았다!
바로 파일입출력 관련 메소드에서 Surround try & catch 이다
위 메소드도 모두 throws 를 사용하고 있었다!
그런데.. 메소드 만드는 사람이 throw해서 안에서 정리하면 되지않나?
왜 귀찮게 사용자에게 미루는 걸까?
위 사항이 요구조건 이거나
해당 메소드를 사용하여 예외처리를 커스터마이징 할 수 있기 때문!
'자바(JAVA)' 카테고리의 다른 글
(19) 자바 Jsoup을 이용한 웹 크롤링 (0) | 2022.07.18 |
---|---|
(18)Model View Controller (MVC) (0) | 2022.06.28 |
(16) 파일 입출력 (0) | 2022.06.27 |
(15) 콜론 ( : ) 의 기능 (0) | 2022.06.27 |
(14) Exception(try,catch,throw) (0) | 2022.06.24 |