본문 바로가기

Java의 정석/예외처리6

예외처리 11 ~ 14 - 메서드에 예외 선언 하기, finally 블럭 메서드에 예외 선언 하기, finally 블럭 메서드에 예외 선언 하기 - 예외를 처리 하는 방법 : try-catch 문, 예외 선언 하기. try-catch 문 : 직접 처리 O. 예외 선언 하기 : 직접 처리 X. (떠넘기기 / 던지기) - 메서드가 호출시 발생 가능한 예외를 "호출 하는 쪽" 에 알리는 것. 참고 : 예외 발생 키워드 : throw 예외를 메서드에 선언 하는 키워드 : throws 둘을 잘 구별 하기. void method() throws Exception1, Exception2, .. ExceptionN { // 메서드의 예외 선언 (throws 키워드 사용) // 메서드의 내용. } void method() throws Exception { // 모든 종류의 예외가 발생 하는 .. 2023. 8. 27.
예외처리 09 ~ 10 - 예외 발생 시키기, 체크드 / 언체크드 예외 1. 예외 발생 시키기 1) 연산자 new를 이용해서 발생시키려는 예외 클래스의 객체를 만들고, Exception e = new Exception("예외 만들기"); 2) throw 키워드를 이용해서 예외를 발생 시킨다. throw e; 꼭, throw 키워드를 사용 해야 한다. (예외 던지기) throw 키워드를 사용 하지 않으면, 예외가 발생 하지 않는다. 2. 예외 잡기 throw 키워드로 던진 예외 객체와 동일한 예외가 작성 되어 있는 catch 블럭이 던진 예외를 잡는다. 3. 예시) 위의 예외 생성은 위와 같이 한줄로 작성 가능 하다. 4. checked 예외, unchecked 예외. 1) checked 예외 >> 컴파일러가 예외 처리 여부를 체크. 예외 처리 필수. 즉, try-catch .. 2023. 8. 20.
예외처리 07 ~ 08 - printStackTrace(), 멀티 catch 블럭 1. try 블럭 내부에 작성된 코드에서 예외가 발생 하면, 발생한 예외에 대한 예외 객체가 생성 된다. 이 예외 객체에는 예외에 대한 정보를 가지고 있다. 또한, 메서드 들을 가지고 있다. 그 중, 대표적으로 사용되는 메서드가 있는데, printStackTrace() 와, getMessage() 이다. 이러한 메서드들을 사용해서, 예외에 대한 정보들을 가져 올 수 있게 된다. 2. printStackTrace() 메서드 : 예외 발생 당시의 호출 스택 (Call Stack) 에 있었던 메서드의 정보와, 예외 메시지를 화면에 출력. getMessage() 메서드 : 발생한 예외 클래스의 인스턴스에 저장된 메세지를 얻을 수 있다. 그외에, 여러가지 메서드들이 존재 한다. 3. 예시) catch문의 인자에 .. 2023. 8. 20.
예외처리 04 ~ 06 - 예외 처리하기, try-catch 문의 흐름 1. 예외처리 (exception handling) 정의 : 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성. 목적 : 프로그램의 비정상 종료를 막고, 정상적인 실행 상태를 유지. 2. try-catch의 기본 구조. 쇼핑몰 홈페이지 라고 가정 했을 때, e1에는 사용자의 돈이 부족해서 결제시 예외 발생 e2에는 사용자가 구매하려고 하는 물건의 재고가 부족 할 때 예외 발생 e3에는 사용자가 구매하려고 하는데, 쇼핑몰 홈페이지가 영업을 하지 않을 때 예외 발생 .. 이런식으로 발생 할 수 있는 예외에 대해서 catch 문에 작성 하면 된다. 3. try-catch 동작 흐름 예시 ------------------------------- 숫자를 0으로 나눌 수 없기 때문에, try 블록.. 2023. 8. 20.
예외처리 02 ~ 03 - 예외 클래스의 계층 구조 1. 예외 클래스의 계층 구조 Object >> 최고조상 Throwable >> 모든 오류의 조상 Exception >> 미약한 오류 Error >> 심각한 오류 2. Exception과 RuntimeException IOException >> 입출력 예외. (Input / Output) ClassNotFoundException >> 클래스 파일이 존재 하지 않아서 발생 하는 예외. ArithmeticException >> 산술 계산 예외. (0으로 숫자를 나눌때 발생) ClassCastException >> 형변환 예외. NullPointerException >> null 예외. (참조변수가 null인데, null을 가지고 무엇을 하려고 할 때 발생) IndexOutOfBoundsException >>.. 2023. 8. 20.
예외처리 01 - 프로그램 오류 1. 컴파일 에러 >> compile-time error >> 컴파일 자체가 안되서, 에러를 수정 하기 전 까지 실행 조차도 할 수 없다. 위의 이미지를 보면, s가 소문자로 시작해서, 컴파일 에러가 발생하는것을 확인 할 수 있다. [ 참고 ] 프로젝트 자동 빌드 설정이 체크 되어 있어서, 개발자가 인텔리제이, 이클립스, .. 등에서 코드를 작성 하고, 저장을 하면, 자동으로 컴파일을 해준다. 위의 컴파일 에러 테스트를 위해 만든 .java 파일이 있는 경로를 따라가보자. cmd 창을 열고, cd 를 치고 한칸 띄우고, 경로를 치고 엔터를 누르면, cmd 창의 경로가 설정 된다. 그리고 dir 을 치고 엔터를 누르면, 해당 경로에 존재하는 모든 파일들이 나오게 된다. 여기서, javac 파일명.java .. 2023. 8. 20.