Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lesson 9. 예외처리.

Similar presentations


Presentation on theme: "Lesson 9. 예외처리."— Presentation transcript:

1 Lesson 예외처리

2 예외란? 컴파일(문법) 에러 런타임(실행) 에러 런타임 에러 이유 해결 방법 논리 에러 잘못된 알고리즘이나 프로그램 설계
int x // 세미콜론(;)을 빠뜨린 경우 int sum=0; for(x=0;x<10;x++) // 중괄호({)를 빠뜨린 경우 sum+=i; // 선언하지 않은 변수 i를 사용한 경우 } 런타임(실행) 에러 런타임 에러 이유 해결 방법 논리 에러 잘못된 알고리즘이나 프로그램 설계 프로그램 재작성 시스템 에러 하드웨어나 운영체제 문제 시스템 관리자가 예방 예외 (Exception) 프로그래머의 부주의 프로그램 사용상의 실수 예외 처리

3 자주 발생하는 예외(Exception) 예외 설명 1 : public class ArrayException1 2 : {
3 : public static void main(String[] args) 4 : { 5 : int[] myInt= new int[10]; 6 : 7 : for(int i=1; i<=10; i++){ 8 : System.out.println("i = "+ i); 9 : myInt[i]= i; 10 : } 11 : } 12 : } ArrayIndexOutOfBoundsException 발생 예외 설명 ArithmeticException 0으로 나누려고 할 때 NullPointException 객체를 생성하기 전에 사용하려고 할 때 NegativeArraySizeException 배열의 크기를 음수로 줄 때 ArrayIndexOutOfBoundsException 첨자가 배열의 크기 범위를 벗어날 때 SecurityException 애플릿이 보안을 위반했을 때

4 예외의 종류

5 try와 catch try{ // 예외가 예상되는 부분 }catch(Exception형1 e){

6 try-catch 예제 1 : public class ArrayException2 2 : {
3 : public static void main(String[] args) 4 : { 5 : int[] myInt= new int[10]; 6 : 7 : for(int i=1; i<=10; i++){ 8 : System.out.println("i = "+ i); 9 : 10 : try{ 11 : myInt[i]= i; // 예외가 발생할 가능성이 있는 위치 12 : }catch(ArrayIndexOutOfBoundsException e){ 13 : System.out.println("배열의 첨자를 다시 설정합니다."); 14 : i= -1; // -1로 재설정 15 : } 16 : } 17 : } 18 : }

7 finally try{ // 예외가 예상되는 부분 }catch(Exception형 e){
// 무조건 실행하고 싶은 부분 } try{ while(i<a.length) // 배열의 원소수만큼 반복 { System.out.print(" "+ a[i]); // 배열의 원소 출력 i++; } }finally{ // 반드시 실행되는 부분 System.out.println(" [배열끝]");

8 throw와 throws 1 : public class ThrowException 2 : {
3 : public static void main(String[] args) throws ArithmeticException // 예외 발생 선언 4 : { 5 : int x, y, z; 6 : x= 4; 7 : y= z= 0; 8 : 9 : try{ 10 : z= x/y; // 0으로 나누면 예외 발생 11 : }catch(ArithmeticException e){ 12 : throw(e); // 예외 발생 13 : } 14 : } 15 : }

9 예외 만들기 Exception 클래스를 상속하여 정의 throw로 예외 발생 try-catch에서 예외처리
public class MyException extends Exception // 직접 정의한 예외 { // ... } throw로 예외 발생 MyException e= new MyException(); throw e; try-catch에서 예외처리 try{ // 예외가 예상되는 부분 }catch(MyException e){ // 예외처리

10 예외처리 연습* 교재 290p. ~ 292p. MyException.java MyOtherException.java
MySubException.java MyExceptionTest.java 인수 실행 방법 java MyExceptionTest one java MyExceptionTest one java MyExceptionTest 0 1 java MyExceptionTest 1 99 java MyExceptionTest 99 2 java MyExceptionTest 2 3 java MyExceptionTest 3


Download ppt "Lesson 9. 예외처리."

Similar presentations


Ads by Google