PowerPoint 프레젠테이션

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

JAVA PROGRAMMING 실습 09. 예외처리

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

Microsoft PowerPoint - CSharp-10-예외처리

슬라이드 1

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

PowerPoint Presentation

Cluster management software

PowerPoint Presentation

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

PowerPoint Presentation

Microsoft PowerPoint - 3장

JAVA PROGRAMMING 실습 08.다형성

PowerPoint Template

Semantic Consistency in Information Exchange

12-file.key

9장.예외와 단정

PowerPoint 프레젠테이션

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

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

슬라이드 1

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

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

C++ Programming

Design Issues

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

Microsoft PowerPoint - 04-UDP Programming.ppt

PowerPoint Presentation

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

PowerPoint 프레젠테이션

No Slide Title

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

歯JavaExceptionHandling.PDF

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

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

PowerPoint Presentation

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

Microsoft PowerPoint - Lect04.pptx

Microsoft PowerPoint - 03-TCP Programming.ppt

Microsoft PowerPoint - Java7.pptx

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

PowerPoint Presentation

교육자료

PowerPoint Presentation

Network Programming

Microsoft PowerPoint - 2강

PowerPoint Presentation

슬라이드 1

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

제11장 프로세스와 쓰레드

JAVA PROGRAMMING 실습 02. 표준 입출력

쉽게 풀어쓴 C 프로그래밊

JAVA PROGRAMMING 실습 02. 표준 입출력

rmi_박준용_final.PDF

12-file.key

PowerPoint Presentation

JAVA PROGRAMMING 실습 05. 객체의 활용

4장.문장

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

쉽게

ThisJava ..

TEST BANK & SOLUTION

PowerPoint 프레젠테이션

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

PowerPoint 프레젠테이션

02 C h a p t e r Java

Microsoft Word - EEL2 Lab4.docx

PowerPoint Presentation

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

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

Microsoft Word - java19-1-midterm-answer.doc

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

쉽게 풀어쓴 C 프로그래밍

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

PowerPoint 프레젠테이션

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

JUNIT 실습및발표

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

PowerPoint Presentation

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

PowerPoint Presentation

Spring Boot/JDBC JdbcTemplate/CRUD 예제

PowerPoint 프레젠테이션

PowerPoint Presentation

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

자바-11장N'1-502

Java ...

PowerPoint Presentation

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

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

<4D F736F F F696E74202D203130C0E52EBFA1B7AF20C3B3B8AE205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

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

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

Transcription:

예외처리 배효철 th1g@nate.com 1

목차 예외와예외클래스 실행예외 예외처리코드 예외종류에따른처리코드 자동리소스닫기 예외처리떠넘기기 사용자정의예외와예외발생

예외와예외클래스 구문오류

예외와예외클래스 구문오류가없는데실행시오류가발생하는경우

예외와예외클래스 import java.util.scanner; public class ExceptionExample1 { public static void main (String[] args) { Scanner rd = new Scanner(System.in); int divisor = 0; int dividend = 0; System.out.print(" 나뉨수를입력하시오 :"); dividend = rd.nextint(); System.out.print(" 나눗수를입력하시오 :"); divisor = rd.nextint(); System.out.println(dividend+" 를 "+divisor+" 로나누면몫은 "+dividend/divisor+" 입니다."); 5

예외와예외클래스 오류의종류 에러 (Error) 하드웨어의잘못된동작또는고장으로인한오류 에러가발생되면프로그램종료 정상실행상태로돌아갈수없음 예외 (Exception) 사용자의잘못된조작또는개발자의잘못된코딩으로인한오류 예외가발생되면프로그램종료 예외처리추가하면정상실행상태로돌아갈수있음

예외와예외클래스 예외의종류 일반 ( 컴파일체크 ) 예외 (Exception) 예외처리코드없으면컴파일오류발생 실행예외 (RuntimeException) 예외처리코드를생략하더라도컴파일이되는예외 경험따라예외처리코드작성필요

예외와예외클래스 예외클래스 자주사용되는예외타입

실행예외 (RuntimeException) NullPointerException 객체참조가없는상태 null 값갖는참조변수로객체접근연산자인도트 (.) 사용했을때발생 ArrayIndexOutOfBoundsException 배열에서인덱스범위초과하여사용할경우발생

실행예외 (RuntimeException) ClassCastException 타입변환이되지않을경우발생 정상코드 예외발생코드

자주발생하는예외 11

예외처리코드 (try-catch-finally) 예외처리코드 예외발생시프로그램종료막고, 정상실행유지할수있도록처리 일반예외 : 반드시작성해야컴파일가능 실행예외 : 컴파일러가체크해주지않으며개발자경험의해작성 try catch finally 블록이용해예외처리코드작성 finally 블록은생략가능

예외처리코드 (try-catch-finally) import java.util.scanner; public class ExceptionExample2 { public static void main (String[] args) { Scanner rd = new Scanner(System.in); int divisor = 0; int dividend = 0; System.out.print(" 나뉨수를입력하시오 :"); dividend = rd.nextint(); System.out.print(" 나눗수를입력하시오 :"); divisor = rd.nextint(); try { System.out.println(dividend+" 를 "+divisor+" 로나누면몫은 "+ dividend/divisor+" 입니다."); catch (ArithmeticException e) { System.out.println("0 으로나눌수없습니다."); finally { System.out.println( 이부분은무조건나와요."); 13

예외처리코드 (try-catch-finally) public class ArrayException { public static void main (String[] args) { int[] intarray = new int[5]; intarray[0] = 0; try { for (int i = 0; i < 5; i++) { intarray[i+1] = i+1 + intarray[i]; System.out.println("intArray["+i+"]"+"="+intArray[i]); catch (ArrayIndexOutOfBoundsException e) { System.out.println(" 배열의인덱스가범위를벗어났습니다."); 14

예외처리코드 (try-catch-finally) public class NumException { public static void main (String[] args) { String[] stringnumber = {"23", "12", "998", "3.141592"; try { for (int i = 0; i < stringnumber.length; i++) { int j = Integer.parseInt(stringNumber[i]); System.out.println(" 숫자로변환된값은 " + j); catch (NumberFormatException e) { System.out.println(" 정수로변환할수없습니다."); 15

예외종류에따른처리코드 다중 catch 예외별로예외처리코드다르게구현

예외종류에따른처리코드 catch 순서 상위클래스가위에위치해야

예외종류에따른처리코드 멀티 (multi) catch (p.436~437) 자바 7 부터는하나의 catch 블록에서여러개의예외처리가능 동일하게처리하고싶은예외를 로연결

자동리소스닫기 try-with-resources 예외발생여부와상관없음 사용했던리소스객체의 close() 메소드호출해리소스닫음 리소스객체 각종입출력스트림, 서버소켓, 소켓, 각종채널 java.lang.autocloseable 인터페이스구현하고있어야함

자동리소스닫기 SomeResource resource = null; try { resource = getresource(); use(resource); catch(...) {... finally { if (resource!= null) { try { resource.close(); catch(...) { try (SomeResource resource = getresource()) { use(resource); catch(...) {...

예외정보얻기 getmessage() 예외발생시킬때생성자매개값으로사용한메시지리턴 원인세분화하기위해예외코드포함 ( 예 : 데이터베이스예외코드 ) catch() 절에서활용

예외정보얻기 public class ExampleGetMessage { public static void main (String[] args) { int a = 100, b = 0 ; int result ; try { result = a / b ; catch (ArithmeticException e) { System.out.print( 발생오류 ==>") ; System.out.println(e.getMessage()) ; 22

예외떠넘기기 throws 메소드선언부끝에작성 메소드에서처리하지않은예외를호출한곳으로떠넘기는역할

사용자정의예외와예외발생 사용자정의예외클래스선언 자바표준 API 에서제공하지않는예외 애플리케이션서비스와관련된예외 Ex) 잔고부족예외, 계좌이체실패예외, 회원가입실패예외. 사용자정의예외클래스선언방법

사용자정의예외와예외발생 예외발생시키기 코드에서예외발생시키는법 호출된곳에서발생한예외를처리하도록

class UserException extends Exception { private static final long serialversionuid = 1L; public UserException() { public UserException(String msg) { super(msg); class Account { private long balance; public Account() { public long getbalance() { return balance ; public void setbalance(long balance) { this.balance = balance ; public void deposit(int money) { balance += money; public void withdraw(int money) throws UserException { if (balance < money) { throw new UserException(" 잔고부족 : "+(money - balance)+" 모자람 "); balance -= money ; 26

사용자정의예외와예외발생 public class AccountExam { public static void main(string[] args) { Account act = new Account(); act.deposit(25000); System.out.println(" 예금액 : " + act.getbalance()); try{ act.withdraw(50000); catch (UserException e) { String msg = e.getmessage(); System.out.println(msg); System.out.println(); e.printstacktrace(); 27

사용자정의예외와예외발생 public class ExampleThrow { public static void main (String[] args) { int a = 100, b = 0 ; int result ; try { if (b == 0) throw new Exception( 0 으로나누려고요? 안됩니다. ); result = a / b ; catch (Exception e) { System.out.print( 발생오류 ==>") ; System.out.println(e.getMessage()) ; 28

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