목록Java/JAVA2 (37)
충분히 쌓여가는
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();..
멀티 catch 블럭 내용이 같은 catch 블럭을 하나로 합친 것 try { ... } catch (ExceptionA e) { e.printStackTrace(); } catch (ExceptionA e2) { e2.printStackTrace(); } 부모-자식 관계일 때는 에러 발생 catch 블럭 체크할 경우 instanceof로 체크한다 즉, 발생한 예외와 일치하는 것을 처리하는게 아닌 조상 타입의 참조변수가 선언되어 있는 catch 블럭으로 처리가능하다 (ChildException을 굳이 사용할 필요가 없다) try { ... // } catch (ParentException | ChildException e) { // 에러 } catch (ParentException e) { // OK, ..
printStackTrace(), getMessage() printStackTrace() 예외 발생 당시의 호출 스택(Call Stack)에 있었던 메서드의 정보와 예외 메시지를 화면에 출력한다 getMessage() 발생한 예외 클래스의 인스턴스에 저장된 메시지를 얻을 수 있다 0으로 나누었을 때 예외 객체(ArithmeticException)가 생성된다 생성된 예외 객체에는 printStackTrace(), getMessage()과 같은 메서드들이 있다 catch 블럭에서 ArithmeticException을 처리할 수 있는 지 확인한다 발생한 예외객체(ArithmeticException)와 참조변수 ae의 타입(ArithmeticException)이 일치한다 catch 블록 내에서 참조변수 ae를 ..