목록Java (181)
충분히 쌓여가는
연결된 예외(chained exception) 한 예외가 다른 예외를 발생시킬 수 있다 예외 A가 예외 B를 발생시키면 A는 B의 원인예외(cause exception)이다 Throwable 링크 : Exception과 Error의 조상 Throwable initCause(Throwable cause) 지정한 예외를 원인 예외로 등록 Throwable getCause() 원인 예외를 반환 하나의 예외 안에 또다른 예외를 포함시킨다 public class Throwable implements Serializable { ... private Throwable cause = this; // 객체 자신(this)를 원인 예외로 등록 ... public synchronized Throwable initCause(..
사용자 정의 예외 만들기 우리가 직접 예외 클래스를 정의할 수 있다 상속을 통해 만든다 1. 조상은 Exception과 RuntimeException 중에서 선택 2. String 매개변수가 있는 생성자를 넣어준다 Exception: 사용자가 발생시키는 예외, 필수처리(try-catch 필수) RuntimeException: 프로그래머의 실수로 발생시키는 예외, 선택처리(try-catch 선택) class MyException extends Exception { MyException(String msg) { // 문자열을 매개변수를 받는 생성자 super(msg); // 조상인 Exception 클래스의 생성자를 호출한다, Exception(String msg) 호출 } } 코드 Exception을 상속..
checked 예외 컴파일러가 예외처리 여부를 체크(예외 처리 필수) 예외처리가 필수인데 하지않아서 에러 발생(컴파일조차 안됨) try-catch문이 없다 Exception이 checked 예외(Exception 클래스와 그 자손, 예외처리 필수) class ExceptionTest { public static void main(String args[]) { throw new Exception(); // Exception을 고의로 발생시킨다 } } java: unreported exception java.lang.Exception; must be caught or declared to be thrown 에러 없애기(try-catch문) Exception과 그 자손은 반드시 예외처리 필수 class Exc..
예외 발생시키기 1. 연산자 new를 이용해서 발생시키려는 예외 클래스의 객체를 만든 다음 Exception e = new Exception("고의적 발생"); 2. 키워드 throw를 이용해서 예외를 발생시킨다 throw e; class ExceptionTest { public static void main(String args[]) { try { Exception e = new Exception("고의적 발생"); throw e; // 예외를 발생시킴 // throw new Exception("고의적 발생"); // 한 줄로 줄이기 가능 } catch(Exception e) { System.out.println("에러 메시지: " + e.getMessage()); e.printStackTrace();..