Microsoft PowerPoint - CSharp-10-예외처리

Similar documents
C++ Programming

JAVA PROGRAMMING 실습 09. 예외처리

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

슬라이드 1

PowerPoint 프레젠테이션

PowerPoint Template

Cluster management software

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

9장.예외와 단정

PowerPoint Presentation

Semantic Consistency in Information Exchange

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

PowerPoint Presentation

예제 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 Template

No Slide Title

C++ Programming

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

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

Microsoft PowerPoint - 04-UDP Programming.ppt

쉽게 풀어쓴 C 프로그래밍

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

슬라이드 1

제목

제11장 프로세스와 쓰레드

Design Issues

Microsoft PowerPoint - Chapter 6.ppt

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

歯JavaExceptionHandling.PDF

Microsoft PowerPoint - CSharp-2-기초문법

Microsoft PowerPoint - hci2-lecture12 [호환 모드]

JAVA PROGRAMMING 실습 08.다형성

쉽게 풀어쓴 C 프로그래밍

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

02 C h a p t e r Java

PowerPoint Presentation

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

PowerPoint Presentation

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

JUNIT 실습및발표

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

비긴쿡-자바 00앞부속

Microsoft PowerPoint - 2-Objective-C 기초

슬라이드 1

DCL Debugging Support

PowerPoint Presentation

3ÆÄÆ®-14

Microsoft PowerPoint - C++ 5 .pptx

PowerPoint 프레젠테이션

(Microsoft PowerPoint - hci2-lecture12 [\310\243\310\257 \270\360\265\345])

C++ Programming

유니티 변수-함수.key

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

PowerPoint Presentation

PowerPoint Template

12-file.key

PowerPoint Presentation

Network Programming

SW

1 SW

PowerPoint 프레젠테이션

No Slide Title

A Tour of Java V

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

쉽게 풀어쓴 C 프로그래밍

오버라이딩 (Overriding)

1. 상속의기본개념 다음과같은문제를위한클래스설계 자동차 속성 : 색상, 배기량, 현재속도 메서드 : 가속하라, 멈춰라, 시동을켜라 트럭 속성 : 색상, 배기량, 현재속도, 최대중량 메서드 : 가속하라, 멈춰라, 시동을켜라 택시 속성 : 색상, 배기량, 현재속도, 요금,

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

2014밝고고운동요부르기-수정3

2005프로그램표지

쉽게

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사)

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

Part 11 예외및입출력 1

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

rmi_박준용_final.PDF

ALTIBASE 사용자가이드 Templete

Microsoft PowerPoint - 09-CE-5-윈도우 핸들

PowerPoint Presentation

SW Verification

Spring Boot/JDBC JdbcTemplate/CRUD 예제

교육자료

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

Microsoft PowerPoint - 14주차 강의자료

<4D F736F F F696E74202D203130C0E52EBFA1B7AF20C3B3B8AE205BC8A3C8AF20B8F0B5E55D>

3장. Hello World

제8장 자바 GUI 프로그래밍 II

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

C# Programming Guide - Types

JAVA PROGRAMMING 실습 02. 표준 입출력

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

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Microsoft PowerPoint - CSharp-15-채팅

Cluster management software

5장.key

Microsoft PowerPoint - Java7.pptx

쉽게 풀어쓴 C 프로그래밍

중간고사

Microsoft PowerPoint - 2강

Transcription:

10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2

예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다. 예외는런타임오류를지칭 예외처리 (Exception Handling) 런타임오류를관리하고, 안전하게처리하는방법 오류에의해서비정상적으로프로그램이종료되는것을막아준다는의미 예외클래스들은최상위클래스인 Exception을상속받은 SystemException 클래스와 ApplicationException 클래스로부터파생 SystemException 클래스를상속받았다면 CLR에의해서만들어지는예외에대한클래스임을의미 사용자가직접예외클래스를만들려면 ApplicationException 클래스를상속 순천향대학교컴퓨터학부이상정 3 표준예외클래스 순천향대학교컴퓨터학부이상정 4

예외처리구문 순천향대학교컴퓨터학부이상정 5 ~catch~finally 문 런타임예외처리는 ~catch~finally 문을사용 ~catch~finally 문의형식 순천향대학교컴퓨터학부이상정 6

예제 10-1: 1 파일오픈예외처리예 파일을오픈할때파일이존재하지않는경우발생하는예외를처리하는프로그램 순천향대학교컴퓨터학부이상정 7 using System.IO; namespace Ex10_1_FileException 파일을오픈할때파일이존재하지않는경우발생하는예외 를처리하는프로그램 StreamWriter sw = null; // 예외가발생할수있는코드 sw = new StreamWriter(new FileStream("fnfexcetion.txt", FileMode.Open)); sw.writeline("c# Programming"); // 파일이존재하지않을경우발생하는예외를처리 catch (FileNotFoundException e) Console.WriteLine(e.FileName + " not found"); finally // 예외의발생여부에관계없이항상수행 if (sw!= null) sw.close(); 순천향대학교컴퓨터학부이상정 8

다중 catch 문 두개이상의예외가발생할수있을때에는여러개의 catch 문을사용하여발생한각예외에대해적절하게예외를처리 catch 문에서사용될예외객체는하위예외를상위예외보다먼저처리 순천향대학교컴퓨터학부이상정 9 namespace Ex10_2_MultiCatch int i = 100; int j = 0; Console.WriteLine(i / j); Console.WriteLine(" 예외없음 "); catch (OverflowException e) // 오버플로우예외를처리 Console.WriteLine(e.Message); catch (DivideByZeroException) // j가 0일때발생 Console.WriteLine("0으로나눌수없습니다!"); catch (Exception e) // 나머지예외를처리 Console.WriteLine(e.Message); 순천향대학교컴퓨터학부이상정 10 예제 10-2: 다중 catch 문사용예

throw 문 throw 문은예외를명시적으로발생시키는명령 순천향대학교컴퓨터학부이상정 11 예제 10-3: throw 문사용예 namespace Ex10_3_ThrowTest Console.WriteLine("1. 프로그램시작 "); // DLL의파일이미지또는실행가능한프로그램이유효하지않을때 throw되는예외 throw new BadImageFormatException(); // 예외를강제로발생 catch (Exception e) Console.WriteLine("2. 예외메시지출력 "); Console.WriteLine(e.Message); Console.WriteLine("3. 프로그램종료 "); 순천향대학교컴퓨터학부이상정 12

사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 13 사용자정의예외클래스 사용자정의예외 ApplicationException 클래스를상속받아서구현 상위클래스의기능을전부사용할수있으며사용자가추가적으로필요한부분을구현 순천향대학교컴퓨터학부이상정 14

예제 10-4: 사용자정의예외예 (1) namespace Ex10_4_UserException public class UserException : ApplicationException private string name; // 사용자정의예외 public UserException() : base() // base 메서드는상위클래스의생성자호출 // 생성자를통해예외를설명하는 Message 를제공 public UserException(string str, string name) : base(str) this.name = name; public string getusername() return name; 순천향대학교컴퓨터학부이상정 15 예제 10-4: 사용자정의예외예 (2) throw new UserException(" 오류발생 ", "Kim"); catch h(userexception e) Console.WriteLine("Message속성 : " + e.message); //StackTrace 는특정시점에실행중인모든메서드를추적 Console.WriteLine("Trace속성 : " + e.stacktrace); Console.WriteLine("getUserName():" + e.getusername()); 순천향대학교컴퓨터학부이상정 16

예외전파 예외전파 발생한예외를해당메서드내에서처리하는 catch 블록이없다면호출메서드로예외를전파 예외를전파시켜특정메서드에서예외를모두처리한다면보다효과적인예외처리가가능 프로그램의진입점에도달할때까지발생한예외의처리가없다면에러메시지를출력하고실행은종료 순천향대학교컴퓨터학부이상정 17 namespace Ex10_5_ExceptionPropagate void GrandParent() int x = 100; int y = 0; x = x / y; // 예외발생, Parent 메서드로전파 Console.WriteLine("GrandParent 메서드종료 "); void Parent() GrandParent(); // Main 메서드로전파 Console.WriteLine("Parent 메서드종료 "); Program p = new Program(); p.parent(); Console.WriteLine(" 예외없음 "); catch (ArithmeticException e) Console.WriteLine("ArithmeticException 전파 "); Console.WriteLine(" main의끝 "); 순천향대학교컴퓨터학부이상정 18 예제 10-5: 예외전파예