10장 예외 (Exceptions).

Slides:



Advertisements
Similar presentations
1. 시설관리공단 상임이사 정수기준을 위반한 초과 여부에 대한 질의 2. 졸속사업으로 인한 예산낭비에 대한 질의 (KT 도로개설, 강변역 고구려역사 ]
Advertisements

집 집 정 정 신 신 단 단 상 상 담 담 분 분 석 석 적 적 발표자 : 황 지 인 ( 석사 2 학기 ) 발표일 : ( 월 ) Copyright (c) Hwang Jiin. All rights reserved. 다 다 변 변 량 량 발표자 : 황 지 인.
명품 JAVA Programming 제 3 장 반복문, 배열, 예외처리.
사회보험 징수통합 관련 조사 결과 보고서 한국갤럽조사연구소
10. 예외 처리.
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
IntArray[0] int length 5 intArray 객체 제 3 장 반복문, 배열, 예외처리.
01. 강사 소개 강사 신지식인 선정 한국음식업 중앙회 전남지회 정책자문위원 내셔널 트러스트 문화유산 자문위원
최저가낙찰제의 입찰금액 적정성 심사 시 절감사유서 작성·평가 가이드라인 설명회 2008년 7월 22일 (화)
Programming for the java Virtual machine
알기 쉽게 해설한 Java 8th edition
제 4장 문 장 배정문 혼합문 제어문 표준 입출력.
제 12장 예외 처리 12.1 설계 쟁점 12.2 PL/I의 ON-조건 12.3 Ada의 예외 처리
제6장 제어(Control) 6.1 구조적 프로그래밍(Structured Programming)
Chapter 11 – 예외 처리 Outline 11.1 설계 쟁점 11.2 Pl/I의 예외 처리 11.3 Ada의 예외 처리
10장 예외 처리 프로그래밍 언어론 10.6 Pascal과 C의 에러 처리 10.1 설계 주제 10.2 PL/I의 예외 처리
명품 C++ 13장 예외 처리와 C 언어와의 링크 지정.
5 익셉션 처리.
프로그래밍 언어론 2004년 가을학기 창 병 모 숙명여대 컴퓨터과학과.
제7장 제어구조 I – 식과 문장.
음악 재생 프로그램 예외 처리 방법 try/catch 블록 예외 선언 방법
[ 단원 08 ] 예외처리와 스레드.
Power Java 제4장 자바 프로그래밍 기초.
8장 자바 입출력.
Chapter 14. 입출력 스트림.
자바 가상 기계 (Java Virtual Machine)
Power Java 제15장 예외 처리 (Exception Handling).
01. 직렬화와 역직렬화에 대하여 객체의 직렬화 직렬화와 역직렬화
10장 SafeTalk 시스템 소프트웨어 연구실 성순화 이재일
Lesson 9. 예외처리.
명품 JAVA Programming 제 8 장 입출력 스트림과 파일 입출력.
Chapter 15 실전 프로젝트 01 친구 연락처 관리 프로그램 02 사진 처리 프로그램 예제 모음 요약 연습문제.
명품 Java Programming.
Chapter 4 매개변수와 오버로딩 Copyright © 2010 Pearson Addison-Wesley. All rights reserved.
Chap07 예외 처리 7.1 예외의 개요 7.2 예외 관련 클래스 7.3 예외 처리.
Visual C++ Programming
Hadoop 김연왕
2장 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램
Computer Architecture
Power Java 제7장 클래스와 객체.
제2장 데이터 및 수식.
Chapter 1 C++ 기초 Copyright © 2010 Pearson Addison-Wesley. All rights reserved.
Android Coding Convention
Visual Basic 기초 1 목표: 컴퓨터기반제어에 관련된 학습을 하기 전에 Visual Basic의 기초를 살펴본다.
- 자료 활용 시 참고사항 - 1. 성희롱 교육은 매년 실시하여야 하므로 매우 식상
자바 5.0 프로그래밍.
Copyright by All rights reserved.
제1장 서론.
제2장 데이터 및 수식.
Copyright 2011 ㈜굿애플 All rights reserved
산학협력단 연구지원금 시스템 사용자 매뉴얼 Copyrightⓒ2014 UOSICF. All Rights Reserved. 1.
주의(主意) 본 자료는 고사성어100선의 교육자료 데모용입니다. 제품구입시 모든 교육용 자료는 별도로 무상 공급됩니다.
DataScience Lab. 박사과정 김희찬 (월)
객체지향의 한계를 넘어, AOP 전은영,이재훈 고덕윤.
[INA470] Java Programming Youn-Hee Han
컴퓨터공학실습(I) 3주 인공지능연구실.
솔개의 교훈 _ 변화만이 살길이다 “변화” 하지 않는 자는 자연 도태됩니다. 과연 당신은 ……. 현재의 위치에 만족 한 상태로
자바 5.0 프로그래밍.
Barat을 이용한 Code Transformation
중고디카디캠 쇼핑몰 스토리보드 작성일 : 2003년 5월 5일 부 서 : 인터넷사업부 직 급 : 대리 작성자 : 김 진환
마이페이지(사회공헌대표계정) PCK 통합 프로젝트 Date / Version Prepared by
Outline 클래스의 해부 캡슐화(Encapsulation) 메쏘드의 해부 그래픽 객체(Graphical Objects)
지역발전사업 예산 수요조사 계획(안).
9장 개요 다형 참조 상속을 통한 다형성 인터페이스를 통한 다형성 정렬 탐색 이벤트 처리 재조명 파일 선택자 및 색상 선택자
안드로이드 앱 분석 팀 기반의 설계 프로젝트 박민재
中国类型小说海外受追捧, 国内市场类型新作后继乏力
예외 처리 3조 조일현.
한상철 (Han, Sangchul) 상허연구동 102호 ( )
회계 교육자료 재경부.
임베디드 프로그래밍 Lecture #
Presentation transcript:

10장 예외 (Exceptions)

예외(Exceptions) 예외처리는 객체지향적 설계에서 있어서 중요한 특성이다. 10장은 다음에 초점을 두고 있다: 예외처리는 객체지향적 설계에서 있어서 중요한 특성이다. 10장은 다음에 초점을 두고 있다: 예외의 목적 예외 메시지 try-catch 문 예외의 전파 예외 클래스 계층 GUI 약어와 도구 팁 추가 GUI 콤포넌트와 컨테이너 © 2004 Pearson Addison-Wesley. All rights reserved

개요 예외 처리 try-catch 문 예외 전파 예외 클래스 입출력 예외 도구 팁과 약서 콤보 박스 스크롤 페인과 스프릿 페인 © 2004 Pearson Addison-Wesley. All rights reserved

예외(Exceptions) 예외 Exception object is a first-class object 예외 (상황): 심각하지 않은 에러 혹은 비정상적 상황 예외 발생 시 계속 수행할 수 있도록 처리해야 한다 Exception object is a first-class object 일반 object처럼 클래스를 이용하여 정의되고 일반 object처럼 사용될 수 있다. 일반 object와 차이점 throw 될 수 있다. © 2004 Pearson Addison-Wesley. All rights reserved

예외(Exceptions) 예외는 프로그램은 실행시간에 발생(thrown)되며, 원한다면 잡아서(catch), 적절히 처리할(handle) 수 있다. 프로그램은 정상적인 실행부분과 예외적인 실행부분으로 분리될 수 있다. © 2004 Pearson Addison-Wesley. All rights reserved

예외처리(Exception Handling) 예외 상황의 예들 0으로 나누려는 시도 범위를 벗어난 배열의 첨자 찾을 수 없는 파일 정상적으로 마칠 수 없는 I/O 연산의 요청 널(null)참조를 따라가려는 시도 프로그램은 다음 세가지 방법중의 하나로 예외를 처리할 수 있다: 예외를 무시한다. 예외를 발생한 곳에서 처리한다. 예외를 프로그램의 다른 지점에서 처리할 수 있다. 예외가 처리되는 방법은 중요한 설계의 고려사항이다. © 2004 Pearson Addison-Wesley. All rights reserved

예외처리 예외가 프로그램에 의하여 무시되면 See Zero.java 적절한 메시지를 출력하고 종료된다. 그 메시지는 호출 스택 트레이스(call stack trace)를 포함한다. 예외가 발생한 위치, 메소드와 문장 번호를 함께 보여준다. See Zero.java © 2004 Pearson Addison-Wesley. All rights reserved

Zero.java <Output> Exception in thread “main” java.lang.ArithmeticException: / by zero at Zero.main(Zero.java:17) © 2004 Pearson Addison-Wesley. All rights reserved

try-catch 문 발생된 예외를 처리하기 위한 문장 try { … } catch (E1 x) { … } … catch (En x) { … } 예외가 발생하는 문장: try 블록 내부 예외를 처리하는 문장: 하나 이상의 catch 절 각 catch 절은 서로 다른 형의 예외를 처리 See ProductCodes.java © 2004 Pearson Addison-Wesley. All rights reserved

ProductCodes.java © 2004 Pearson Addison-Wesley. All rights reserved

ProductCodes.java © 2004 Pearson Addison-Wesley. All rights reserved

실행결과 Enterproduct code (XXX to quit) : TRV2475A5R-15 Enterproduct code (XXX to quit) : TRD1704A7R-12 Enterproduct code (XXX to quit) : TRL2k74A5R-11 District is not numeric:TRL2k74A5R-11 Enterproduct code (XXX to quit) : TRQ2949A6M-04 Enterproduct code (XXX to quit) : TRV2105A2 Improper code length: TRV2105A2 Enterproduct code (XXX to quit) :TRQ2778A7R-19 Enterproduct code (XXX to quit) :XXX # of valid codes entered:4 # of banned codes entered: 2 code.charAt(9) => StringIndexOutOfBoundsException district = Integer.parseInt() => NumberFormatException © 2004 Pearson Addison-Wesley. All rights reserved

finally 절 finally 절(옵션) try { … } catch (E1 x) { … } … catch (En x) { … } finally { … } finally절은 예외의 발생여부에 관계없이 실행되는 절이다. 예외가 발생되지 않은 경우 try 절이 종료된 후 실행된다. 예외가 발생된 경우에는 catch 절이 종료된 후에 실행된다. © 2004 Pearson Addison-Wesley. All rights reserved

예외 전파(Exception Propagation) 예외가 발생된 곳에서 처리되지 않으면 예외는 상위 레벨(그 메소드를 호출한 함수)로 전파된다. 예외가 catch되어 처리될 때까지, 또는 main( )에 도달할 때까지 전파된다. 상위 레벨에서 예외를 처리하기 예외를 발생시킨 메소드가 try블록 내부에서 호출되어야만 한다. try { method_call(..); } catch (E x ) { } See Propagation.java See ExceptionScope.java © 2004 Pearson Addison-Wesley. All rights reserved

예외 전파 © 2004 Pearson Addison-Wesley. All rights reserved

ExceptionScope.java (1/2) © 2004 Pearson Addison-Wesley. All rights reserved

ExceptionScope.java (2/2) © 2004 Pearson Addison-Wesley. All rights reserved

출력 Program beginning Level 1 beginning. Level 2 beginning. The exception message is : / by zero The call stack trace: java.lang.ArithmeticException: / by zero at ExceptionScope.level3 (ExceptionScope.java:54) at ExceptionScope.level2 (ExceptionScope.java:41) at ExceptionScope.level1 (ExceptionScope.java:18) Level 1 ending. Program ending. * Level2 ending과 Level 3 ending은 출력되지 않는다. © 2004 Pearson Addison-Wesley. All rights reserved

Java에서 예외 선언 자바에서 예외 타입은 클래스로 선언 예외 선언 예외타입은 클래스이다 Exception 클래스나 서브클래스로부터 상속 받아 정의한다. 예외타입은 클래스이다 생성자, 멤버 필드, 메소드 등을 가질 수 있다. © 2004 Pearson Addison-Wesley. All rights reserved

예외 클래스 계층 구조 Object ….. Throwable Exception Error RuntimeException ClassNotFoundException IllegalAcessException InstantiationException InterruptedException NoSuchMethodException ….. ArithmeticException NagativeArraySizeException ArrayIndexOutOfBoundsException SecurityException … © 2004 Pearson Addison-Wesley. All rights reserved

throw 문 예외 정의 예외 발생 See CreatingExceptions.java Exceptioin 클래스를 확장(extend)해서 정의할 수 있다. 예외 발생 throw 문을 이용해서 발생시킬 수 있다. See CreatingExceptions.java See OutOfRangeException.java © 2004 Pearson Addison-Wesley. All rights reserved

CreatingExceptions.java © 2004 Pearson Addison-Wesley. All rights reserved

OutOfRangeException.java Enter an integer value between 25 and 40, inclusive : 69 Exception in thread “main” OutOfRangeException: Input value is out of range. at CreatingExceptions.main(CreaingExceptions.java:20) © 2004 Pearson Addison-Wesley. All rights reserved

검사예외(Checked Exceptions) 예외 구분 검사 예외(checked exception) 비검사 예외(unchecked exception) 검사예외 예외가 처리 혹은 throws 선언되었는지 컴파일러가 검사하여 처리되지 않았으면 오류 메시지를 낸다. 비검사예외 처리 혹은 선언되었는지 컴파일러가 검사하지 않는다. RuntimeException로부터 상속 받는 런타임 예외 © 2004 Pearson Addison-Wesley. All rights reserved

예외 명세 처리되지 않은 검사 예외를 메소드 이름 뒤에 명세 throws 절 이용 메소드_이름(…) throws A, B, C { . . . } © 2004 Pearson Addison-Wesley. All rights reserved

I/O 스트림 영역 스트림 I/O 스트림은 다음 두가지 종류 중의 하나이다. 원천(source)에서 목적지(destination)로 전달되는 바이트의 시퀀스를 말한다. I/O 스트림은 다음 두가지 종류 중의 하나이다. 바이트 자료를 다루는 바이트 스트림 텍스트 자료를 다루는 문자 스트림 I/O 스트림은 또는 다음 두 가지 중의 하나이다. source나 destination으로 동작하는 데이터 스트림 스트림 내부의 정보를 변경하거나 관리하는 프로세싱 스트림 © 2004 Pearson Addison-Wesley. All rights reserved

표준 I/O 표준 I/O 스트림의 세가지 종류 우리가 println 문장을 실행시키기 위해서는 System.out을 사용한다. 표준 입력 – System.in로 정의됨 : 키보드 입력 표준 출력 –System.out로 정의됨 : 특정 윈도우에 출력 표준 오류 –System.err로 정의됨 : 오류 메시지 출력 우리가 println 문장을 실행시키기 위해서는 System.out을 사용한다. © 2004 Pearson Addison-Wesley. All rights reserved

표준 입력 스트림 Keyboard 클래스를 사용하여 다음과 같이 입력 스트림을 선언한다 : InputStreamReader isr = new InputStreamReader (System.in) BufferedReader stdin = new BufferedReader (isr); InputStreamReader 객체 바이트 스트림을 문자 스트림으로 변환한다. BufferedReader 객체 readLine 메소드를 사용하여 문장 단위로 입력을 받을 수 있게 해준다. © 2004 Pearson Addison-Wesley. All rights reserved

텍스트 파일 정보는 I/O스트림을 선언하고 사용하는 텍스트 파일로부터 입력되거나 출력된다. FileReader 클래스 문자 데이터를 포함하는 입력 파일을 표현하는 클래스이다. FileWriter 클래스 텍스트 출력 파일을 표현하는 클래스 이다. See TestData.java © 2004 Pearson Addison-Wesley. All rights reserved

TestData.java © 2004 Pearson Addison-Wesley. All rights reserved

실행결과 © 2004 Pearson Addison-Wesley. All rights reserved

도구 팁과 약어 도구 팁 약어(mnemonic) 콤포넌트의 setToolTipText메소드를 사용하여 지정할 수 있다. JButton button = new JButton(“Compute”); button.setToolTipText(“Calculates the area under the curve”); 약어(mnemonic) 마우스 이외에 키보드를 사용하여 사용자가 버튼을 누르거나 메뉴에서 선택할 수 있도록 해주는 문자이다. © 2004 Pearson Addison-Wesley. All rights reserved

LightBulb.java © 2004 Pearson Addison-Wesley. All rights reserved

실행화면 © 2004 Pearson Addison-Wesley. All rights reserved

LightBulbPanel.java (1/2) © 2004 Pearson Addison-Wesley. All rights reserved

LightBulbPanel.java (2/2) © 2004 Pearson Addison-Wesley. All rights reserved

LightBulbControl.java 1/2 © 2004 Pearson Addison-Wesley. All rights reserved

LightBulbControl.java 2/2 © 2004 Pearson Addison-Wesley. All rights reserved

콤보 상자 콤보 상자(combo box) JukeBox 프로그램 사용자가 드롭다운 메뉴로부터 여러 옵션들 중 하나를 고르게 해준다. 편집가능(editable), 또는 편집불능(uneditable) 이 될 수 있다. JukeBox 프로그램 콤보 상자에서 연주할 노래를 고른 뒤 play버튼을 누르면 연주한다. JukeBox.java JukeBoxControls.java © 2004 Pearson Addison-Wesley. All rights reserved

Jukebox.java © 2004 Pearson Addison-Wesley. All rights reserved

JukeBoxControls.java(1/4) © 2004 Pearson Addison-Wesley. All rights reserved

JukeBoxControls.java(2/4) © 2004 Pearson Addison-Wesley. All rights reserved

JukeBoxControls.java(3/4) © 2004 Pearson Addison-Wesley. All rights reserved

JukeBoxControls.java(4/4) © 2004 Pearson Addison-Wesley. All rights reserved

실행화면 © 2004 Pearson Addison-Wesley. All rights reserved

스크롤 페인 scroll pane 컴포넌트의 제한된 모습을 보여주고 수직, 수평 스크롤바를 제공하는 컨테이너 이미지는 레이블에 붙여지고 이 레이블은 JScrollPane 구성자를 이용하여 스크롤 페인에 더해진다. © 2004 Pearson Addison-Wesley. All rights reserved

TransitMap.java © 2004 Pearson Addison-Wesley. All rights reserved

실행결과 © 2004 Pearson Addison-Wesley. All rights reserved

분할 페인 Split pane 이동 가능한 칸막이 막대(divide bar)에 의하여 분리된 두 개의 컴포넌트를 표시하는 컨테이너 JSplitPane클래스를 사용하여 분할 페인 생성 HORIZONTAL_SPLIT, VERTICAL_SPLIT JSplitPane(JSplitPane.HORIZONTAL_SPLIT, imageList, ImagePanel) JList 리스트의 선택항목이 바뀔 때마다 리스트 선택 이벤트(list selection event)가 발생된다. 리스트 선택 이벤트는 ListSectionListener 인터페이스를 구현하는 클래스의 valueChanged 메소드에 의하여 처리된다. © 2004 Pearson Addison-Wesley. All rights reserved

PickImage.java © 2004 Pearson Addison-Wesley. All rights reserved

Listpanel.java (1/2) © 2004 Pearson Addison-Wesley. All rights reserved

ListPanel.java (2/2) © 2004 Pearson Addison-Wesley. All rights reserved

실행결과 © 2004 Pearson Addison-Wesley. All rights reserved

요약 10장은 다음에 초점을 맞추고 있다: 예외의 목적 예외 메시지 try-catch 문 예외의 전파 예외 클래스 계층 GUI 약어와 도구 팁 추가 GUI 콤포넌트와 컨테이너 © 2004 Pearson Addison-Wesley. All rights reserved