-
[자바] throwsprogram_language 및 궁금한것/Java 2019. 5. 21. 09:43
package com.siri.que; // runtimeException은 호출하는 곳에서 예외처리를 안해도 컴파일에러 없음.왜? class A{ void hello(String name) { //만약 name인자의 값이 null이라면 메소드를 문장들을 실행하지 않겠어!! if(name==null) throw new NullPointerException(); //강제 예외 발생!!, return문과 같이 메소드를 제어. System.out.println("안녕,"+name); } } class My{ A a;//A a=null; public My() { a = new A(); } void callTest(String name) { try { a.hello(name);//NullPointerException발생!! //예외발생 요소? 1.a 2.hello 3.name : 1(90%),3(10%) //a.b.c.d(e); ==> a, b, c : 예외발생 요소!! }catch (NullPointerException e) { System.out.println("이름값을 전할하세요."); } } } public class MyThrowDefineTest { public static void main(String[] args) { My m = new My(); String str=null; // if(str==null) { // System.out.println("# 이름을 반드시 입력하세요!"); // return; // } m.callTest(str); } }
NullPoint에러가 뜨는데 My 클래스에서 에러가 발생하니 try catch문을 이용해 주던지, main에서 if문으로 조건을 걸어줘야한다.
런타임 에러는 빨간줄이 뜨지 않고 콘솔창에만 나온다.
반응형'program_language 및 궁금한것 > Java' 카테고리의 다른 글
ibatis란? (0) 2019.07.01 [JAVA] POJO란? (0) 2019.06.18 [자바] throw와 throws의 차이점 (0) 2019.05.21 [자바] 재귀(recursive) (0) 2019.05.20 큐(Queue) 와 Stack (0) 2019.05.17