e.printStackTrace()
= 에러 메세지의 발생 근원지를 찾아서 단계별로 에러를 출력한다.
try {
// ...
}
catch(Exception e){
e.printStackTrace();
}
public void a() throws NullPointerException, ArithmeticException{
b();
}
package p06;
import java.util.Random;
class MyRandom{
public void getrandom() throws NullPointerException{
// 난수값 발생 : 0 ~ 2
Random r = new Random();
int n = r.nextInt(3); // 0 ~ 2
//비즈니스 규칙 변경됨. 0이면 예외라고 가정하자.
// if(n==0)throw new Exception("랜덤값 0으로 인해 예외발생");
if(n==0)throw new NullPointerException("랜덤값 0으로 인해 예외발생"); //런타임 에러임으로 컴파일 언체크드
System.out.println("값:" + n);
}
}
//throws와 throw 빈칸 채우기 나옴!! 위치도 알아놓기!!
public class ExceptionTest {
public static void main(String[] args) {
System.out.println("start");
MyRandom x = new MyRandom();
try{
x.getrandom();
}catch(NullPointerException e) {
System.out.println("예외처리" + e.getMessage());
}
System.out.println("end - 정상종료");
}
}
런타임 오류(에러, 예외): 컴파일은 되는 데 실행 과정에서 문제가 발생
컴파일 오류: 실행이 안됨
기본적인 예외 처리 구문
try{
System.out.println(3/0);
} catch (Exception e){
System.out.println("이런 문제가 발생했어요 =>" + e.getMessage());
e.printStackTrace();
}
}