25강 예외처리 - 예외란? - 예외처리의 필요성 - 예외처리 문법 (try ~ catch) - 예외처리 문법 (throws)

Slides:



Advertisements
Similar presentations
SCJP. Garbage Collection  Garbage Collector( 이하 GC) 가 Heap 영역 에 할당된, 더 이상 사용되지 않는 메모리인 Garbage 를 다른 객체가 사용할 수 있도록 정리하는 것.  C++ 에서의 메모리 해제 int* v=new.
Advertisements

2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
4강. Servlet 맛보기 Servlet 문서 작성 하기 web.xml에 서블릿 맵핑 어노테이션을 이용한 서블릿 맵핑
5강. Servlet 본격적으로 살펴보기-I 프로젝트 만들기 doGet() doPost()
㈜디아이씨 SSLVPN 협력사 접속방법 2017년 4월.
자바 프로그래밍 프로젝트 - 공학용 계산기 - 8조 수학 양승원 물리 안성훈
Lesson 9. 예외처리.
31강 JAVA 네트워크 JAVA 네트워크 InetAdress, URLConnection 클래스 Socket의 이해
9강. AOP(Aspect Oriented Programming)-I
25강. Security-I 보안 관련 프로젝트 생성 보안 관련 라이브러리 추가 보안 관련 설정 파일 만들기
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
6강. DI설정 방법 XML파일을 이용한 DI설정 방법 JAVA를 이용한 DI설정 방법 XML과 JAVA를 같이 사용
5강. DI활용 의존 관계 DI사용에 따른 장점 Lecturer Kim Myoung-Ho Nickname 블스
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
22강. 파일 업로드 - 파일 업로드 라이브러리 설치 - 파일 업로드 프로그래밍 Lecturer Kim Myoung-Ho
12강. 액션태그 액션태그란? forward, include, param 태그 살펴보기
17강. 데이터 베이스 - I 데이터 베이스의 개요 Oracle 설치 기본적인 SQL문 익히기
9강. JSP 본격적으로 살펴보기-I JSP 태그의 개념 이해 JSP 동작 원리 JSP 내부 객체
21강. 스프링JDBC JDBC를 이용한 반복코드 줄이기 Spring빈을 이용한 코드 간소화
6강. Servlet 본격적으로 살펴보기-II
14. 예외처리.
10장. 예외처리.
3강_HTML 기본-II 리스트 태그 - ul,li,ol 표를 나타내는 태그 - table 이미지를 출력하는 태그 – img
26강. 포워딩(Forwarding) RequestDispatcher 클래스 HttpServletResponse 클래스
19강. 데이터 베이스 - III 회원가입 및 회원정보 수정 프로그래밍 Lecturer Kim Myoung-Ho
28강_맵(Map) 맵을 이용하기 위한 설정 위치 추적 Lecturer Kim Myoung-Ho Nickname 블스
25강. FrontController 패턴과 Command 패턴
26강_CSS3 규칙 CSS파일 규칙 Lecturer Kim Myoung-Ho
4강. 컴퓨터와의 기본적인 소통수단 - II 제어문과 루프문이란? if문, switch문, for문, while문 의 이해
3강. JSP 맛보기 JSP 문서 작성 하기 JSP 아키텍처 Lecturer Kim Myoung-Ho Nickname 블스
24강 API - III - Timer 클래스 - StringTokenizer 클래스 Lecturer Kim Myoung-Ho
15강. 예외 페이지 예외 페이지의 필요성 page 지시자를 이용한 예외 처리 web.xml파일을 이용한 예외 처리
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
10강_CSS 속성-I CSS3 단위 url() display 속성 visibility 속성 opacity 속성
제14장 예외처리와 템플릿 예외 처리의 개요를 학습한다. 예외 처리를 적용할 수 있다. 템플릿의 개념을 이해한다.
15강. 추상클래스 - II - 어린이집 아이들의 식대 계산 프로그래밍 Lecturer Kim Myoung-Ho
어서와 C언어는 처음이지 제14장.
16강. 스프링MVC 게시판-I 프로젝트 설계 DataBase 구축 프로젝트 생성 Lecturer Kim Myoung-Ho
Lesson 4. 수식과 연산자.
8강. 외부 파일을 이용한 설정 Environment 객체 프로퍼티 파일을 이용한 설정
14강. 추상클래스 - I - 추상클래스의 이해 - 추상클래스가 필요한 이유 - 추상클래스의 문법
30강 JAVA 그래픽 JAVA GUI(Graphic User Interface)란? AWT 컴포넌트? Swing 컴포넌트?
29강 JAVA 스레드 - 스레드란? - 멀티스레드 문법 - synchronized Lecturer Kim Myoung-Ho
7강_CSS 기본-II id(#) 와 class(.) tag,id, class 혼합 속성 선택자 후손 및 자손 선택자
11강_CSS 속성-II margin 및 padding 속성 box-sizing 속성 border 속성
27강 JAVA Collections - II - Map계열 컬렉션 클래스 살펴보기 - Set계열 컬렉션 클래스 살펴보기
에어 조건문.
6강. 객체지향 프로그램의 시작 객체지향 이전의 프로그래밍 객체지향의 등장 배경과 이해 메소드의 이해
2강_첫번째 안드로이드 프로젝트 에뮬레이터(AVD) 만들기 처음 만들어 보는 프로젝트 전체적인 구성 살펴보기
5강. 배열 배열이란? 배열의 문법 변수와 같이 이해하는 배열의 메모리 구조의 이해 레퍼런스의 이해 다차원 배열
C++ Espresso 제11장 예외 처리와 형변환.
3강. 컴퓨터와의 기본적인 소통수단 - I 연산자란? 컴퓨터와 소통하기 위한 다양한 방법들
7강. 객체지향 프로그램의 본질 메소드 프로그래밍의 한계 객체의 개념 및 클래스의 이해
26강 JAVA Collections - I - 컬렉션이란? - JAVA도 결국 효과적인 데이터를 처리하기 위한 수단
20강 패턴을 통한 객체지향 언어의 이해 - II - 난이도 있는 패턴 예제 - I Lecturer Kim Myoung-Ho
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
15강. 폼 데이터 값 검증 Validator를 이용한 검증 ValidationUtils 클래스
13강. Form 데이터 HttpServletRequest 어노테이션 데이터(커맨드) 객체
14강. 세션 세션이란? 세션 문법 Lecturer Kim Myoung-Ho Nickname 블스
27강_데이터베이스 SQLite CP(Content Provider) Lecturer Kim Myoung-Ho
18강. 인터페이스 – II - 인터페이스와 다중상속 - 인터페이스를 통한 로봇 장남감 만들기 프로그래밍
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
22강. 트랜잭션(Transaction)-I
12강. 컨트롤러 컨트롤러 클래스 제작 요청 처리 메소드 제작 뷰에 데이터 전달
함수, 모듈.
15강_액티비티 액티비티란? 새로운 액티비티로 전환 생명주기 화면방향(Orientation)
Java의 정석 제 8 장 예외처리 (Exception handling) Java 정석 남궁성 강의
6 객체.
11강. static - static의 이해 - static과 객체와의 관계 - static의 장점과 단점
Presentation transcript:

25강 예외처리 - 예외란? - 예외처리의 필요성 - 예외처리 문법 (try ~ catch) - 예외처리 문법 (throws) - 일반적으로 많이 보게 되는 예외들 Lecturer Kim Myoung-Ho Nickname 블스 blogstudy@naver.com

25-1. 예외란? 세상에 완벽한 프로그램은 없는 거 같습니다. 아무리 간단하고, 문제 없을 거 같은 프로그램도 외부환경요인 등에 의해서 문제가 발생하곤 합니다. 프로그램에서 문제가 발생될 만한 곳을 예상하여 사전에 ‘문제가 발생하면 이렇게 해라’라고 프로그래밍 하는 것을 예외 처리라고 합니다. 25-2. 예외처리의 필요성 프로그래머는 예외 처리를 왜 해야 될까요? 이유는 간단합니다. 몇 달 동안 심혈을 기울여 만들어 놓은 프로젝트가 단순한 어떤 이유로 작동을 하지 않은 다면 얼마나 속상할까요? 예외의 필요성은 어느 한 부분에서 예외가 발생하더라도 계속해서 프로그램이 동작되도록 하는데 목적이 있습니다. 예를 들어 사용자한테 두 번의 숫자를 입력 받아 곱셈, 나눗셈, 덧셈, 뺄셈을 하는 프로그램이 있습니다. 사용자가 ‘10’과 ‘2’를 입력하면 결과는 다음과 같을 것입니다. 10 * 2 = 20, 10 / 2 = 5, 10 + 2 = 12, 10 – 2 = 10 이 경우에는 아무런 이상이 없습니다. 하지만 사용자가 10과 0을 입력하는 순간 문제가 발생 합니다. 10 * 0 = 0, 10 / 0 = ?, 10 + 0 = 10, 10 – 0 = 10 0으로 나눌 수 없어 프로그램이 중단 될 것입니다. 이런 경우 덧셈과 뺄셈은 이상이 없어도 사용자는 프로그램 동작이 중단되어 결과를 볼 수가 없습니다. 만약, 나눗셈 처리에 예외처리를 해두었다면, 나눗셈의 결과는 못 보더라도 덧셈과 뺄셈의 결과는 볼 수 있었을 것입니다. 이것이 바로 예외처리가 필요한 이유 입니다.

25-3. 예외처리 문법 (try ~ catch) 문제가 발생할 수 있는 로직을 기술 합니다.

25-3. 예외처리 문법 (try ~ catch) 앞에서 살펴 봤던 4칙 연산을 이용해서 예외처리(try ~ catch)를 해보도록 하겠습니다. 문제가 발생할 수 있는 로직을 try{} 처리 했습니다. 문제가 발생할 경우 처리하는 부분 입니다. 문제가 발생하였지만 catch로 처리하고, 나머지 작업도 진행 되었습니다.

25-4. 끝내 실행 합니다. finally try ~ catch를 이용할 경우 try{}에서 문제가 발생하면 catch문이 실행 됩니다. finally문은 try와 catch문의 영향 없이 무조건 실행 됩니다.

25-4. 예외처리 문법 (throws) (25_4_ex1_throws) try ~ catch 예외 처리 방법은 예외가 발생했을 때 자체적으로 catch문을 이용해서 해결 했습니다. 이번에 살펴볼 throws의 경우에는 예외를 발생시킨(호출)쪽으로 예외를 던져버리는 방식 입니다.

25-5. 일반적으로 많이 보게 되는 예외들 예외(Exception)의 종류는 아주 많습니다. 정말 많습니다. 프로그래밍을 하다 보면, 자주 보게 되는 예외들이 있습니다. 대표적인 몇 가지만 살펴보도록 하겠습니다. JAVA API문서를 통해서 Exception클래스가 얼마나 많은 자식 클래스를 가지고 있는지 알 수 있습니다.

25-5. 일반적으로 많이 보게 되는 예외들 ArrayIndexOutOfBoundsException > 배열을 사용시 존재하지 않는 index값을 호출하면 발생 합니다. 인덱스 4에 해당하는 값은 없습니다. NullPointerException > 존재하지 않는 객체를 가리킬 때 발생 합니다. 존재하는 객체가 없습니다.

25-5. 일반적으로 많이 보게 되는 예외들 NumberFormatException > 문자를 숫자로 처리할때 발생 숫자로 변경 할 수 없는 문자열을 변경하려고 함. DB관련 Exception ClassNotFoundException : 드라이브 이름을 찾지 못했을 때 SQLException : db url, id, pw가 올바르지 않을 때