-
throw / throws프로그래밍/JAVA 자바 2021. 7. 29.반응형
package ex0727; public class Ex112_throws { public static void main(String[] args) { // TODO Auto-generated method stub User12 u = new User12(); try { u.setValue(-5); int n = u.getValue(); System.out.println(n); } catch (Exception e) { // TODO: handle exception System.out.println(e.toString()); } System.out.println("end"); } } class User12 { private int value; //throw 와 throws의 차이를 알아야함 public void setValue(int value) throws Exception { // 메소드를 호출하는 곳에서 catch 하도록 설정 //catch를 여기서말고 위에 메인 메소드에서 잡음 if(value < 0) { //강제로 checked exception 발생 시킴 throw new Exception("0 이상만 가능"); } this.value = value; } public int getValue() { return value; } }
throw = 강제로 예외를 발생 시킴
package ex0727; public class Ex113_throws { public static void main(String[] args) throws Exception { // throws:메소드를 호출한 곳에서 예외 처리하도록 설정 // TODO Auto-generated method stub User13 ob = new User13(); // 이곳에서 try~catch로 예외를 잡지 않고 main()을 호출하는 곳에서 예외 처리하는 방법도 있다 ob.setValue(-5); } } class User13 { private int value; //throw 와 throws의 차이를 알아야함 public void setValue(int value) throws Exception { // 메소드를 호출하는 곳에서 catch 하도록 설정 //catch를 여기서말고 위에 메인 메소드에서 잡음 if(value < 0) { //강제로 checked exception 발생 시킴 throw new Exception("0 이상만 가능"); } this.value = value; } public int getValue() { return value; } }
메소드를 호출한 곳에서 throws 주기
package ex0727; public class Ex116_throwUnchecked { public static void main(String[] args) { // TODO Auto-generated method stub User16 u = new User16(); /* u.setValue(-5); // value가 0보다 적어서 RuntimeException 예외가 발생한다. // 예외를 처리하지 않아 프로그램은 이곳에서 비정상적인 종료 int n = u.getValue(); System.out.println(n); System.out.println("end"); */ try { u.setValue(-5); int n = u.getValue(); System.out.println(n); } catch (Exception e) { System.out.println(e.toString()); } System.out.println("end"); } } class User16 { private int value; public int getValue() { return value; } public void setValue(int value) { if(value < 0) { // 숫자가 음수인 경우 RuntimeException 예외를 발생 시킨다. // RuntimeException은 unchecked 예외로 반드시 catch할 필요가 없다. throw new RuntimeException("0이상만 가능합니다."); } } }
반응형'프로그래밍 > JAVA 자바' 카테고리의 다른 글
generic , 제네릭 (0) 2021.07.29 throw, throws / 예외 주기 (2) (0) 2021.07.29 예외 잡기 (try, catch, finally문) (0) 2021.07.29 중첩 ,내부 ,익명 클래스 (0) 2021.07.28 추상 클래스 / 인터페이스 (0) 2021.07.26