코딩

    자바 예외 던지기

    new FileReader 라는 생성자는 내부적으로 예외를 발생시켜서 사용자가 처리하도록 한다. 지금까지 예외를 처리하는 방법으로 try...catch...finally를 배웠다. 이외에 다른 방법도 있다. throws를 사용하는 것이다. throws는 예외처리를 다음 사용자에게 넘기는 것이다. throws와 throw 둘 다 Exception을 발생시킨다는 것에는 차이가 없다. 하지만 둘 사이의 차이점은 throws는 현재 메서드에서 자신을 호출한 상위 메서드로 Exception을 발생시킴 throw는 억지로 에러를 발생시키고자 할 때 사용한다(현재 메서드, 혹은 상위메서드로) 다시 말하자면 throws 키워드를 사용하는 메서드를 호출한 상위 메서드에서 이러한 에러 처리에 대한 책임을 맡게 되는 것이고..

    자바 finally

    예외와 상관없이 try 내의 구문이 실행되면 finally가 실행되고 있다. 그럼 finally는 언제 사용하는 것일까? 어떤 작업의 경우는 예외와는 상관없이 반드시 끝내줘야 하는 작업이 있을 수 있다.

    자바 예외 다중캐치

    같은 로직이지만 상황에 따라서 다른 예외가 발생할 수 있다는 것이다. 이런 경우에 다중캐치를 사용하면 된다. 조건문의 else if처럼 가능하다. Exception e 를 먼저 위에 배치 시키면 오류가 발생할 것이다. 왜냐하면 Exception이 ArrayIndexOutOfBoundsException, ArithemeticException 보다 포괄적인 예외를 의미하기 때문에 Exception 이후에 등장하는 catch 문은 실행될 수 없는 구문이기 때문이다. 자바 컴파일러가 불필요한 로직을 감지하고 이를 개발자에게 알려주는 것이다.

    자바 예외

    위의 코드를 실행 시키면 오류가 뜬다 10을 0으로 나누면 의미가 없어서 자바에서는 에러를 뜨게 한다. at 위쪽에 있을 수록 오류의 진원지이다. 아래에 있을 수록 가장 사용자 쪽에 인접해 있는 것 에러가 발생시킬 수 있다고 예측되는 경우 try{ }로 넣는다. 에러가 발생되면 catch로 간다 try { 예외의 발생이 예상되는 로직 } catch (예외클래스 인스턴스) { 예외가 발생했을 때 실행되는 로직 } 그 다음은 뒷수습이다. 위의 코드 처럼 아래쪽으로 갈 수록 에러에 대해 정보를 더 많이 제공한다. e.getMessage(); 오류에 대한 기본적인 내용을 출력해준다. 상세하지 않다. e.toString() e.toString()을 호출한 결과는 java.lang.ArithmeticExceptio..