목록이것이 자바다 (108)
충분히 쌓여가는
throws 메소드 내부에서 예외가 발생할 때 try-catch 블록으로 예외를 처리하는 것이 기본이지만, 메소드를 호출한 곳으로 예외를 떠넘길 수도 있고 이때 사용하는 키워드가 throws이다 리턴타입 메소드명(매개변수, ...) throws 예외클래스1, 예외클래스2, ... { } throws 키워드가 붙어 있는 메소드에서 해당 예외를 처리하지 않고 떠넘겼기 때문에 이 메소드를 호출하는 곳에서 예외를 받아 처리해야 함 ClassNotFoundException을 throws하는 method2()의 예외를 method1()에서 호출할 때 처리하고 있다 public void method1() { try { method2(); } catch(ClassNotFoundException e) { System.o..
다중 catch try 블록에는 다양한 종류의 예외가 발생할 수 있다 예외에 따라 예외 처리 코드를 다르게 작성할 수 있다 catch 블록이 여러 개라 할지라도 catch 블록은 단 하나만 실행된다 : try 블록에서 동시 다발적으로 예외가 발생하지 않으며, 하나의 예외가 발생하면 즉시 실행을 멈추고 해당 catch 블록으로 이동하기 때문 예제 배열의 인덱스가 초과되었을 경우 발생하는 ArrayIndexOutOfBoundsException과 숫자 타입이 아닐 때 발생하는 NumberFormatException을 각각 다르게 예외 처리한다 package ch11.sec02.exam03; import java.util.Iterator; public class ExceptionHandlingExample { ..
예외 처리 코드 예외가 발생했을 때 프로그램의 갑작스러운 종료를 막고 정상 실행을 유지할 수 있도록 처리하는 코드 try-catch-finally 블록으로 구성됨 try 블록에서 작성한 코드가 예외 없이 정상 실행되면 catch 블록은 실행되지 않고 연이어 finally 블록이 실행된다 finally 블록 예외 발생 여부와 상관없이 finally 블록은 항상 실행된다 try 블록과 catch 블록에서 return문(메소드 종료)을 사용하더라도 finally 블록은 항상 실행된다 finally 블록은 옵션으로 생략 가능하다 예제 printLength(): 문자열의 수 return package ch11.sec02.exam01; public class ExceptionHandlingExample2 { pub..
에러 컴퓨터 하드웨어의 고장으로 인해 응용 프로그램 실행 요류가 발생하는 것 예외 잘못된 사용 또는 코딩으로 인한 오류 예외가 발생되면 프로그램은 곧바로 종료된다는 점에서 에러와 동일하지만, 예외 처리를 통해 계속 실행 상태를 유지할 수 있다 Exception 일반 예외 컴파일러가 예외 처리 코드 여부를 검사하는 예외 Runtime Exception 실행 예외 컴파일러가 예외 처리 코드 여부를 검사하지 않는 예외 자바의 예외 자바는 예외가 발생하면 예외 클래스로부터 객체를 생성한다. 이 객체는 예외 처리 시 사용된다 자바의 모든 에러와 예외 클래스는 Throwable을 상속받아 만들어지고, 추가적으로 예외 클래스는 java.lang.Exception 클래스를 상속받는다 실행 예외는 RuntimeExcep..