대충벌레 블로그
article thumbnail
728x90
반응형

 예외처리 

 

 

1. 예외 처리

잘못된 코드, 부정확한 데이터, 예외적인 상황에 의하여 발생하는 오류

 

2. 예외 처리 코드(try~catch)

try 블록에서 오류가 발생시 catch문으로 이동하여 처리한다.

<java />
try { //예외가 발생할수 있는 코드 } catch(예외종류 참조변수) { //예외처리 코드 }finally { //여기 있는 코드는 try 블록이 끝나면 무조건 실행 }

 

3. finally 블록

  • 오류가 발생하였건 발생하지 않았건 항상 실행된다.
  • 반드시 실행되어야하는 코드라면 finally 블록에 넣어준다.
  • [자원반납과 같은 처리가 필요한 경우 finally 블록을 사용]

4. 예외 종류

  • Error : 자바 가상 기계 안에서 치명적인 오류가 발생한다.
  • RuntimeException : 프로그래밍 버그나 논리 오류에서 기인
  • Etc... : Error와 RuntimeException을 제외한 나머지 예외,                                                      회복할수 있는 예외이므로 프로그램은 반드시 처리

5. 예외와 메소드

  • 예외를 잡아서 그 자리에서 처리하는 방법 : try ~ catch 블록을 사용하여 예외를 잡고 처리
  • 메소드가 예외를 발생시킨다고 기술하는 방법 : throws를 사용하여, 다른 메소드한테 예외 처리
<java />
public void write(){ PrintWiter = new PrintWriter(new FileWriter("파일명")); // 에러 발생가능성이 있는 코드 for(int i=0;i<SIZE;i++) out.println("배열원소 " + i + " = " + list[i]; out.close(); }

아래코드처럼 throws 추가

<java />
public void write() throws IOException{ }

6. 예외 생성

예외는 throw 문장으로 생성한다.

<java />
public Object pop() { Object obj; if(size==0){ throw new EmptyStackException(); // 이 문장에서 예외 객체가 생성된다. } return obj; }

7. 사용자 정의 예외

<java />
public class MyException extends Exception { //코드 }

Exception 클래스를 상속받아 처리할 사용자 정의 예외 클래스

<java />
public class Myexception extends Exception{ public Myexception() { super("사용자 정의 예외"); } } class ExceptionTest1{ public static void main(String args[]) { try { method1(); }catch(Myexception e) { System.err.println(e.getMessage()+"\n 호출 스택 내용 : "); e.printStackTrace(); } } private static void method1() throws Myexception{ throw new Myexception(); } }

Exception 클래스를 상속받아서 예외 클래스를 생성하였다.

 

7.1. 관련글

 
 

 

공감,구독 부탁드립니다.

 

반응형
profile

대충벌레 블로그

@대충벌레

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!