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

Similar documents
PowerPoint 프레젠테이션

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

JAVA PROGRAMMING 실습 09. 예외처리

슬라이드 1

Microsoft PowerPoint - CSharp-10-예외처리

Cluster management software

PowerPoint Presentation

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

Microsoft PowerPoint - java1-lecture3.ppt [호환 모드]

JAVA PROGRAMMING 실습 08.다형성

C++ Programming

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

PowerPoint Template

9장.예외와 단정

PowerPoint 프레젠테이션

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

Semantic Consistency in Information Exchange

PowerPoint Presentation

PowerPoint Presentation

슬라이드 1

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

12-file.key

PowerPoint Presentation

歯JavaExceptionHandling.PDF

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

Design Issues

PowerPoint 프레젠테이션

Microsoft PowerPoint - Lect04.pptx

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

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

PowerPoint Presentation

No Slide Title

Network Programming

Microsoft PowerPoint - 04-UDP Programming.ppt

슬라이드 1

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

Microsoft PowerPoint - 2강

쉽게 풀어쓴 C 프로그래밍

교육자료

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µå

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

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

제11장 프로세스와 쓰레드

PowerPoint Presentation

PowerPoint Presentation

PowerPoint Presentation

Microsoft PowerPoint - 03-TCP Programming.ppt

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

쉽게 풀어쓴 C 프로그래밊

ThisJava ..

PowerPoint Presentation

JAVA PROGRAMMING 실습 05. 객체의 활용

JAVA PROGRAMMING 실습 02. 표준 입출력

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

PowerPoint 프레젠테이션

PowerPoint Presentation

JUNIT 실습및발표

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

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

PowerPoint 프레젠테이션

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

PowerPoint Presentation

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

JMF2_심빈구.PDF

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

슬라이드 1

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

Chap12

Microsoft Word - EEL2 Lab5 예외처리와 스레드.docx

Microsoft PowerPoint - RMI.ppt

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

슬라이드 1

PowerPoint Presentation

JAVA PROGRAMMING 실습 02. 표준 입출력

JVM 메모리구조

PowerPoint Presentation

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

02 C h a p t e r Java

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

PowerPoint 프레젠테이션

<4D F736F F F696E74202D203130C0E52EBFA1B7AF20C3B3B8AE205BC8A3C8AF20B8F0B5E55D>

쉽게

PowerPoint 프레젠테이션

금오공대 컴퓨터공학전공 강의자료

쉽게 풀어쓴 C 프로그래밍

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

No Slide Title

No Slide Title

rmi_박준용_final.PDF

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

Microsoft PowerPoint - Java7.pptx

Spring Boot/JDBC JdbcTemplate/CRUD 예제

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

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

PowerPoint Presentation

FileMaker ODBC and JDBC Guide

슬라이드 1

Transcription:

예외와예외클래스 예외처리 514760-1 2016 년가을학기 12/08/2016 박경신 오류의종류 에러 (Error) 하드웨어의잘못된동작또는고장으로인한오류 에러가발생되면 JVM실행에문제가있으므로프로그램종료 정상실행상태로돌아갈수없음 예외 (Exception) 사용자의잘못된조작또는개발자의잘못된코딩으로인한오류 예외가발생되면프로그램종료 예외처리 추가하면정상실행상태로돌아갈수있음 예외와예외클래스 예외의종류 일반예외 ( 컴파일체크 Exception) 컴파일하는과정에서예외처리코드가필요한지검사 예외처리코드없으면컴파일오류발생 실행예외 (RuntimeException) 예외처리코드를생략하더라도컴파일이되는예외 ' 경험 따라예외처리코드작성필요 예외클래스 예외클래스 Java 는예외를클래스로관리 JVM 이프로그램을실행하는도중에예외가발생하면해당예외클래스로객체를생성 예외처리코드에서예외객체를이용

실행예외 (RuntimeException) NullPointerException 객체참조가없는상태 null 값갖는참조변수로객체접근연산자인도트 (.) 사용했을때발생 ArrayIndexOutOfBoundsException 배열에서인덱스범위초과하여사용할경우발생 실행예외 (RuntimeException) NumberFormatException 숫자로변환될수없는문자가포함되어있는문자열을숫자로변경할경우 Integer.parseInt(String s) Double.parseDouble(String s) public class NumberFormatExceptionExample { String data1 = "100"; String data2 = "a100"; 실행예외 (RuntimeException) ClassCastException 타입변환이되지않을경우발생 정상코드 예외발생코드 실행예외 (RuntimeException) ClassCastException 타입변환이되지않을경우발생 public class NumberFormatExceptionExample { Dog dog = new Dog(); changedog(dog); Cat cat = new Cat(); changedog(cat); public static void changedog(animal animal) { //if(animal instanceof Dog) { Dog dog = (Dog) animal; //ClassCastException // class Animal { class Dog extends Animal { class Cat extends Animal {

예외처리코드 (try-catch-finally) 예외처리코드 예외발생시프로그램종료막고, 정상실행유지할수있도록처리 일반예외 : 반드시작성해야컴파일가능 실행예외 : 컴파일러가체크해주지않으며개발자경험의해작성 try catch finally 블록이용해예외처리코드작성 예외처리코드 (try-catch-finally) public class TryCatchFinallyRuntimeExceptionExample { String data1 = null; String data2 = null; data1 = args[0]; data2 = args[1]; catch(arrayindexoutofboundsexception e) { System.out.println("."); System.out.println("[ ]"); System.out.println("java TryCatchFinallyRuntimeExceptionExample num1 num2"); return; 실행시매개값을잘못주었을경우예외발생 catch(numberformatexception e) { System.out.println("."); finally { 다중 catch 하나의 try 블록내부에서다양한종류의예외발생시 각예외별로예외처리코드 (catch 블록 ) 다르게구현 단하나의 catch 블록만실행 public class CatchByExceptionKindExample { String data1 = args[0]; String data2 = args[1]; 실행시매개값을잘못주었을경우예외발생 catch(arrayindexoutofboundsexception e) { System.out.println("."); System.out.println("[ ]"); System.out.println("java CatchByExceptionKindExample num1 num2"); catch(numberformatexception e) { System.out.println("."); finally {

하위예외는상위예외를상속 하위예외는상위예외타입도됨 catch 순서 상위예외가아래에위치해야 public class CatchOrderExample { String data1 = args[0]; String data2 = args[1]; catch(arrayindexoutofboundsexception e) { System.out.println("."); catch(exception e) { System.out.println("."); finally { 상위예외 Exception 이위에있을경우 상위예외 Exception 이아래에있을경우 멀티 (multi) catch 자바 7 부터는하나의 catch 블록에서여러개의예외처리가능 동일하게처리하고싶은예외를 로연결 public class MultiCatchExample { String data1 = args[0]; String data2 = args[1]; 실행시매개값을잘못주었을경우예외발생 catch(arrayindexoutofboundsexception NumberFormatException e) { System.out.println(".."); catch(exception e) { System.out.println(" "); finally {

자동리소스닫기 try-with-resources 예외발생여부와상관없음 사용했던리소스객체의 close() 메소드호출해리소스닫음 리소스객체 각종입출력스트림, 서버소켓, 소켓, 각종채널 java.lang.autocloseable 인터페이스구현하고있어야함 예외떠넘기기 (throws) throws 메소드선언부끝에작성 메소드내에서처리하지않은예외를메소드호출한곳 (calling method) 으로떠넘기는역할 예외떠넘기기 (throws) throws throws 선언된메소드를호출하는메소드 (calling method) 는 1. 반드시 try 블록내에서호출 2. catch 블록에서떠넘겨받은예외를처리함 3. try-catch 블록으로예외처리를하지않고 throws 키워드로자신도다시예외를떠넘길수있음 3. throws ClassNotFoundException 1. try block 1.2 2. catch block 사용자정의예외와예외발생 사용자정의예외 (user-defined exception) 클래스선언 자바표준 API 에서제공하지않는예외 애플리케이션서비스와관련된예외, Application Exception E.g. 잔고부족예외, 계좌이체실패예외, 회원가입실패예외. 사용자정의예외클래스선언방법 1. 예외클래스상속 일반예외 : Exception class 상속 실행예외 : RuntimeException class 상속 2. 생성자정의 매개변수없는기본생성자, String 타입의매개변수를갖는생성자 1.1 예외발생

사용자정의예외와예외발생 사용자정의예외와예외발생 예외발생시키기 (throw) 코드에서예외발생시키는법 - 예외객체생성 호출한곳에서발생한예외를처리하도록 public class BalanceInsufficientException extends Exception { public BalanceInsufficientException() { public BalanceInsufficientException(String message) { super(message); public class Account { private long balance; public Account() { 1. Exception class 상속 2. constrctors 생성 public long getbalance() { return balance; public void deposit(int money) { balance += money; 4. 호출한곳에서발생한예외를처리하도록함 public void withdraw(int money) throws BalanceInsufficientException { if(balance < money) { 3. 사용자정의예외발생 예외객체생성 throw new BalanceInsufficientException(" :"+(money-balance)+" ); balance -= money; 사용자정의예외와예외발생 public class AccountExample { Account account = new Account(); 예외정보얻기 getmessage() 예외발생시킬때생성자매개값으로사용한메시지리턴 // account.deposit(10000); System.out.println(" : " + account.getbalance()); // account.withdraw withdraw(30000); catch(balanceinsufficientexception e) { String message = e.getmessage(); System.out.println(message); System.out.println(); e.printstacktrace(); 5. try block 에서메소드호출 6. catch block 에서사용자정의예외처리 7. 예외정보얻기 (8 절 ) 원인세분화하기위해예외코드포함 ( 예 : 데이터베이스예외코드 ) catch() 절에서활용

예외정보얻기 printstacktrace() 예외발생코드를추적하여모두콘솔에출력 프로그램테스트하면서오류찾을때유용하게활용