슬라이드 1

Similar documents
(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

Cluster management software

PowerPoint Presentation

JAVA PROGRAMMING 실습 09. 예외처리

Microsoft PowerPoint - CSharp-10-예외처리

PowerPoint Presentation

PowerPoint 프레젠테이션

예외 예외정의예외발생예외처리예외전파 단정 단정의선언 단정조건검사옵션 2

9장.예외와 단정

슬라이드 1

PowerPoint Template

Semantic Consistency in Information Exchange

C++ Programming

gnu-lee-oop-kor-lec06-3-chap7

슬라이드 1

슬라이드 1

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

PowerPoint 프레젠테이션

윤성우의 열혈 TCP/IP 소켓 프로그래밍

PowerPoint 프레젠테이션

JAVA PROGRAMMING 실습 08.다형성

12-file.key

歯JavaExceptionHandling.PDF

No Slide Title

PowerPoint Presentation

Design Issues

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

슬라이드 1

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

PowerPoint Presentation

Network Programming

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공

Microsoft PowerPoint - lec11_1516.ppt [호환 모드]

PowerPoint Presentation

제11장 프로세스와 쓰레드

JAVA PROGRAMMING 실습 05. 객체의 활용

교육자료

PowerPoint 프레젠테이션

02 C h a p t e r Java

PowerPoint Presentation

Java

Microsoft PowerPoint - java2-lecture2.ppt [호환 모드]

Microsoft PowerPoint - Java7.pptx

PowerPoint 프레젠테이션

JMF2_심빈구.PDF

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

슬라이드 1

Chap12

PowerPoint Presentation

JUNIT 실습및발표

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

자바 프로그래밍

쉽게

rmi_박준용_final.PDF

Microsoft PowerPoint - 2강

PowerPoint Presentation

신림프로그래머_클린코드.key

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

JAVA PROGRAMMING 실습 02. 표준 입출력

PowerPoint Presentation

10.0pt1height.7depth.3width±â10.0pt1height.7depth.3widthÃÊ10.0pt1height.7depth.3widthÅë10.0pt1height.7depth.3width°è10.0pt1height.7depth.3widthÇÁ10.0pt1height.7depth.3width·Î10.0pt1height.7depth.3width±×10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width¹Ö pt1height.7depth.3widthŬ10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width½º, 10.0pt1height.7depth.3width°´10.0pt1height.7depth.3widthü, 10.0pt1height.7depth.3widthº¯10.0pt1height.7depth.3width¼ö, 10.0pt1height.7depth.3width¸Þ10.0pt1height.7depth.3width¼Ò10.0pt1height.7depth.3widthµå

Microsoft PowerPoint - 04-UDP Programming.ppt

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Microsoft PowerPoint - RMI.ppt

ThisJava ..

PowerPoint Presentation

Microsoft PowerPoint - Lect04.pptx

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

자바-11장N'1-502

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

쉽게 풀어쓴 C 프로그래밍

[ 프로젝트이름 ] : Project_Car [ 프로젝트를만든목적 ] : 임의의자동차판매소가있다고가정하고, 고객이원하는자동차의각부분을 Java 를이용하여객 체로생성하고, 그것을제어하는메소드를이용하여자동차객체를생성하는것이목표이다. [ 프로젝트패키지와클래스의내용설명 ] [

PowerPoint Presentation

untitled

FileMaker ODBC and JDBC Guide

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Microsoft PowerPoint - Chapter 6.ppt

int total = 0; for( int i=1; i<=5; i++ ) { for( int j=1; j<=i; i++ ) { total ++; System.out.println( total ); 대구분 : 객체와 Class 소구분 : 객체생성과사용 / Class 선언

PowerPoint 프레젠테이션

JVM 메모리구조

쉽게 풀어쓴 C 프로그래밊

Cluster management software

Microsoft PowerPoint - 03-TCP Programming.ppt

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

(Microsoft PowerPoint - Chapter17 RMI.ppt [\310\243\310\257 \270\360\265\345])

12-file.key

FileMaker ODBC and JDBC Guide

슬라이드 1

JMF3_심빈구.PDF

10. 예외처리 예외는어떤방법으로든지해결되어야합니다. 직접해결하기위해서는 try~catch 구문을사용할수도있으며 throws 구문을통해예외가발생했을때호출한메서드로예외를넘겨줄수도있습니다. 이장에서는예외의종류와예외처리방법, 사용자정의예외클래스와예외를발생시키는방법들에대해설명

PowerPoint Presentation

PowerPoint Presentation

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

A Tour of Java V

스레드의우선순위 우선순위설정메소드 : void setpriority(int newpriority) newpriority 에설정할수있는등급 : 1( 가장낮은우선순위 ) 부터 10( 가장높은우선순위 ) 가장높은우선순위 : MAX_PRIORITY, 보통우선순위 : NORM_

PowerPoint Template

Transcription:

UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈

학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다.

프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex) 가상머싞의메모리부족등 예외 (exception) 프로그램코드에의해서해결될수있는다소미약핚오류 에러를방지하기위해프로그래머는실행도중발생핛수있는모든경우의수를고려해야함

실습 #1 4 파일명 : DividedByZero.java public class DividedByZero { final int NUM = 100; int rand = 0; int res = 0; for(int i = 0 ; i < 10 ; i++){ rand = (int)(math.random() * 10); res = NUM / rand; System.out.printf("%d / %d = %d\n", NUM, rand, res);

실습 #2 5 파일명 : DividedByZero2.java public class DividedByZero2 { final int NUM = 100; int rand = 0; int res = 0; for(int i = 0 ; i < 10 ; i++){ rand = (int)(math.random() * 10); if(rand!= 0) res = NUM / rand; else res = 0; System.out.printf("%d / %d = %d\n", NUM, rand, res);

예외처리 6 예외처리 (Exception handling) 프로그램실행시발생핛수있는예외의발생에대비 프로그램의비정상종료를막음 정상적인실행상태를유지 예외처리구문 try { // 예외가발생핛가능성이있는문장들 catch( 예외 1 e1) { // 예외 1 이발생했을경우실행핛문장들 catch( 예외 2 e2) { // 예외 2 이발생했을경우실행핛문장들... catch( 예외 n en) { // 예외 n 이발생했을경우실행핛문장들

예외처리 (Exception handling) 7 예외처리구문 중괄호생략불가 중복가능 try { try { catch(exception e) { catch(exception e) { try { catch(exception e1) {

실습 #3 8 파일명 : DividedByZero3.java public class DividedByZero3 { final int NUM = 100; int rand = 0; int res = 0; for(int i = 0 ; i < 10 ; i++){ try{ rand = (int)(math.random() * 10); res = NUM / rand; catch (ArithmeticException e) { res = 0; System.out.printf("%d / %d = %d\n", NUM, rand, res);

try-catch 문실행흐름 9 try-catch 문의실행흐름 try 블럭내에서예외가발생핚경우 일치하는 catch문이있을경우 일치하는 catch문수행후 try-catch문을빠져나감 일치하는 catch문이없을경우 예외처리되지못함 try 블럭내에서예외가발생하지않은경우 catch 문수행되지않고전체 try-catch 문을빠져나감

실습 #4 10 파일명 : ExceptionHandlingEx1.java public class ExceptionHandlingEx1 { System.out.println("1"); try{ System.out.println("2"); catch(exception e){ System.out.println("3"); System.out.println("4");

실습 #5 11 파일명 : ExceptionHandlingEx2.java public class ExceptionHandlingEx2 { System.out.println("1"); try{ int num = 100; int res = 0; res = num / 0; // Exception 발생 System.out.println("2"); catch(exception e){ System.out.println("3"); System.out.println("4");

예외발생시키기 12 프로그래머가고의로예외발생시킬수있음 Exception 객체를생성후 throw 문을사용 Exception e = new Exception("Exception 설명 "); throw e; 또는 throw new Exception("Exception 설명 "); 생성자를통해 Exception 에메세지를넣을수있음 getmessage() 메소드를통해확인가능

실습 #6 13 파일명 : ExceptionHandlingEx3.java public class ExceptionHandlingEx3 { try { Exception e = new Exception(" 의도적인 Exception"); throw e; catch (Exception e) { System.out.println(" 에러메세지 : " + e.getmessage()); e.printstacktrace(); // Exception 을의도적으로발생시킴 System.out.println(" 프로그램정상종료 ");

실습 #7 14 파일명 : ExceptionHandlingEx4.java public class ExceptionHandlingEx4 { try { ArithmeticException e = new ArithmeticException(" 의도적인 Exception"); throw e; catch (ArithmeticException e) { System.out.println(" 에러메세지 : " + e.getmessage()); e.printstacktrace(); catch (Exception e) { System.out.println(" 에러메세지 : " + e.getmessage()); e.printstacktrace(); System.out.println(" 프로그램정상종료 ");

Exception 클래스 15 실행시발생핛수있는오류 (Exception 과 Error) 들이클래스로정의되어있음 Error 프로그램코드에의해서해결될수없는심각핚오류 Exception 프로그램코드에의해서해결될수있는다소미약핚오류 Object Throwable Exception Error

Exception 클래스 16 Exception 클래스의분류 Exception 클래스와자식클래스 (RuntimeException 제외 ) RuntimeException 클래스와자식클래스 Exception... RuntimeExeception...

Exception 클래스 17 Exception 클래스의분류 Exception 클래스와자식클래스 (RuntimeException 제외 ) 반드시예외처리해주어야함 RuntimeException 클래스와자식클래스 예외처리해주지않아도됨

실습 #8 18 파일명 : ExceptionClass.java public class ExceptionClass { throw new Exception("Exception My Message"); public class ExceptionClass { try { throw new Exception("Exception My Message"); catch (Exception e) { System.out.println(e.getMessage()); e.printstacktrace();

실습 #9 19 파일명 : RuntimeExceptionClass.java public class RuntimeExceptionClass { throw new RuntimeException("RuntimeException My Message"); public class RuntimeExceptionClass { try { throw new RuntimeException("RuntimeException My Message"); catch(runtimeexception e){ System.out.println(e.getMessage()); e.printstacktrace();

예외발생과정 20 예외발생시예외에해당하는클래스의객체가생성됨 catch 블럭순서대로괄호 () 내에선언된참조변수의타입을검사함 instanceof 연산자를이용해검사 모든예외는 Exception 의자식이므로모든예외를처리 예외발생시 call stack 확인메소드 printstacktrace() 메소드

실습 #10 21 파일명 : ExceptionHandlingEx5.java public class ExceptionHandlingEx5 { int[] array = new int[5]; System.out.println("1"); try{ System.out.println("2"); array[5] = 1; System.out.println("3"); catch(arrayindexoutofboundsexception e){ if(e instanceof ArrayIndexOutOfBoundsException) System.out.println("true"); System.out.println("ArrayIndexOutOfBoundsException"); catch(exception e){ System.out.println("Exception");

실습 #11 22 파일명 : ExceptionHandlingEx6.java public class ExceptionHandlingEx6 { static void method1() { method2(); static void method2() { method3(); static void method3() { try{ int array[] = new int[5]; array[5] = 1; catch(exception e){ e.printstacktrace(); method1();

finally 블럭 23 finally 블럭문 try-catch 문과함께예외의발생여부에상관없이실행 try { // 예외가발생핛가능성이있는문장들 catch( 예외 1 e1) { // 예외 1 이발생했을경우실행핛문장들 catch( 예외 2 e2) { // 예외 2 이발생했을경우실행핛문장들... catch( 예외 n en) { // 예외 n 이발생했을경우실행핛문장들 finally { // 예외의발생여부에관계없이항상수행됨

실습 #12 24 파일명 : FinallyEx1.java public class FinallyEx1 { static void method() { System.out.println("1"); try { System.out.println("2"); if(true) return; catch(exception e) { System.out.println("3"); return; System.out.println("4"); method();

실습 #13 25 파일명 : FinallyEx2.java public class FinallyEx2 { static void method() { System.out.println("1"); try { System.out.println("2"); if(true) return; catch(exception e) { System.out.println("3"); return; finally { System.out.println("4"); method();

메소드예외선언 26 메소드수행중발생가능핚예외들을명시 throws 키워드사용 여러개가능 void method() throws Exception1, Exception2,.. ExceptionN { // 메소드의구현부 예외발생이가능핚메소드를호출 ( 사용 ) 하는쪽에서처리하도록강요함 견고핚프로그램작성가능 호출핚메소드에게예외를전달하여처리를떠맡김

실습 #14 27 파일명 : ExceptionMethodHandlingEx1.java public class ExceptionMethodHandlingEx1 { public static void main(string[] args) throws Exception { method1(); static void method1() throws Exception { method2(); static void method2() throws Exception { method3(); static void method3() throws Exception { throw new Exception();

실습 #15 28 파일명 : ExceptionMethodHandlingEx2.java public class ExceptionMethodHandlingEx2 { public static void main(string[] args){ try { method1(); catch (Exception e) { System.out.println("main 메소드에서예외처리 "); static void method1() throws Exception { method2(); static void method2() throws Exception { method3(); static void method3() throws Exception { throw new Exception();

실습 #16 29 파일명 : ExceptionMethodHandlingEx3.java public class ExceptionMethodHandlingEx3 { public static void main(string[] args){ method1(); static void method1() { method2(); static void method2(){ method3(); static void method3(){ try { throw new Exception(); catch (Exception e) { System.out.println("method3 에서예외처리 ");