Presentation is loading. Please wait.

Presentation is loading. Please wait.

10. 예외 처리.

Similar presentations


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

1 10. 예외 처리

2 예외 처리 프로그램이 실행하는 동안 발생될 수 있는 비정상적인 조건(exception) 예외 처리시 프로그램의 비정상적 종료
오류 메시지 출력 예외처리기 사용: 프로그램의 신뢰성 제공.

3 [예제 1.59] 0으로 나누는 예외 발생         class Uncaught    {                 public static void main(String[] args) {                         int a = 0, b; b = 100 / a;  System.out.println(“Is this printed? ");                 }         } [실행결과]   java.lang.ArithmeticException: / by zero at Uncaught.main(Uncaught.java:4)

4 [예제 1.60] try-catch의 의미 이해         class Caught    {                 public static void main(String[] args) {                         int a = 0, b;                         try { b = 100 / a; System.out.println(“Is this printed?”); } catch (ArithmeticException e) { b = 1; System.out.println(“Division by 0: I will set the b by 1”);   } System.out.println (“This will be printed”); } [실행 결과] Division by 0: I will set the b by 1 This will be printed

5 [예제 1.60] try-catch-finally 구문 사용 예        class ExceptionExm    {
static int count = 0;                 public static void main(String[] args) {                         int result; while(true) {                         try { result = 3/count++; if (count == 3) break; System.out.println(count + “) No Exception”); } catch (ArithmeticException e) { System.out.println(count + “) Error: 0으로 나누기 에러”);   } finally { System.out.println (count + “) finally bolck Executed”); } } // end of while } // end of main } end of class [실행 결과] 1) Error: 0으로 나누기 에러 ) finally block Executed 2) No Exception ) finally block Executed 3) finally block Executed

6 [예제 1.62] 예외로 인하여 번역시 에러가 발생하는 예
        class Checked    {                 public static void main(String[] args) {                         int a; a = System.in.read() – ‘0’; System.out.println(a); } [예제 1.63] 예제 1.62를 올바로 수정한 예 class Checked2    {                 public static void main(String[] args) throws java.io.IOException {                         int a;

7 [예제 1.64] 예제 1.62를 올바로 수정한 예(2)         import java.io.*; class Checked    {                 public static void main(String[] args) throws IOExecption {                         int a; a = System.in.read() – ‘0’; System.out.println(a); }

8 11. 인터페이스

9 public static final int DEFAULT = 100;
        interface Stack1    {                  int DEFAULT = 100; void push(int value); int pop(); } public static final int DEFAULT = 100;                       [예제 1.65] 인터페이스 구현의 예 class ImpStack1 implements Stack1    {                 int stk[]; int top; ImpStack1() { stk = new int[DEFAULT]; top = 0; }                        

10 public void push(int k) { if ( top == stk.length)
        ImpStack1(int size)    {                         stk = new int[size]; top = 0; } public void push(int k) { if ( top == stk.length) System.out.println(“Stack full”); else stk[top++]=k; public int pop() { if (top <= 0 ) { System.out.println(“Stack empty”); return –1; return stk[--top];

11 public static void main(String[] args) { int x;
[예제 1.66] 인터페이스를 구현한 클래스를 활용하는 예 class UseStack1    { public static void main(String[] args) {                 int x; ImpStack1 obj = new ImpStack1(); obj.push(5); x = obj.pop(); System.out.println(“x = “ + x); } [예제 1.67] 인터페이스와 추상 클래스의 활용 interface Stack1   { int DEFAULT = 100; void push(int value); int pop(); }         

12 public void push(int k) { if (top == stk.length)
        abstract class Partial implements Stack1    {                        int stk[]; int top; public void push(int k) { if (top == stk.length) System.out.println(“Stack full”); else stk[top++] = k; } class ImpStack2 extends Partial { ImpStack2() { stk = new int[DEFAULT]; top = 0; ImpStack2(int size) { stk = new int[size];

13 System.out.println(“Stack empty”); return –1; else return stk[--top];
        public int pop()    { if (top <= 0) System.out.println(“Stack empty”); return –1; else return stk[--top]; } class UseStack2 { public static void main(String[] args) { int x; ImpStack2 obj = new ImpStack2(50); obj.push(5); x = obj.pop(); System.out.println(“x = “ + x );


Download ppt "10. 예외 처리."

Similar presentations


Ads by Google