일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 스프링게시판만들기
- 자바기초
- 오라클설치
- jsp게시판만들기
- js datepicker
- crud게시판
- 자바배열예제
- 2020정보처리기사실기요약
- 2020정보처리기사실기정리
- CRUD게시판만들기
- 프로그래머스 MYSQL
- jsp 팝업띄우기
- 프로그래머스 SQL
- 2020정보처리기사실기
- 게시판만들기
- 자바 정규표현식 예제
- 자바연산자
- 오버라이딩
- 정처기실기정리
- spring crud게시판
- html기초
- jsp 날짜팝업
- Oracle기초
- 날짜지정팝업
- spring crud
- 스프링 CRUD게시판
- PLSQL
- 정보처리기사실기정리
- 프로그래머스 쿼리문
- 스프링 crud
Archives
- Today
- Total
영보의 SystemOut.log
[JAVA]예외처리(Exception)/예외처리종류/자바기초 본문
반응형
예외처리 |
- 자바의 모든 소스에는 예외처리가 있다 (생략이 가능, 생략 불가능) - 프로그램을 실행하는 과정에서 오작동, 비정상적으로 종료 => 에러 / 오류 ** 윈도우 : 쓰레드의 충돌, 주소값 오작동, 비정상적으로 수행 |
* 에러가 발생하는 경우 프로그래머의 실수 사용자의 오류 (입력값, 작동을 잘못했을 경우) 예) 33대란 |
Checked Exception | Uncheck Exception | |
예외 | 반드시 예외처리 | 생략 (필요시에는 예외처리) |
확인 시점 | 컴파일단계 | 실행 단계 |
예외발생 시 트랜잭션 처리 |
roo-back 안함 | rollback 함 |
특징 | 컴파일러가 예외처리 했는지 확인 ▶ 반드시 예외처리를 해야 한다 |
실행시 ▶ 컴파일러가 예외처리를 확인하지 않는다 예외 처리가 생략이 가능 ▶ 필요한 경우에만 예외처리 할 수 있따 |
용도 | 파일 / 메모리 네트워크 입출력 Database 연결 Thread 충돌 |
사용자 입력 → 문자열 → 정수 변환 사용자 입력 → 나누기 → 0을 입력 |
종류 | 파일입출력 IOException 쓰레드 InterruptedException URL MalformedURLException Database SQL Exception IOException |
Runtime Exception -> 실행시 에러 (인터프리터) - 0으로 나눴을 때 - 배열의 크기를 초과했을 때 - 정수 변환 - NullPoint Exception ClassCast Exception SystemException ArrayIndexOutOfBoundsException ArithmeticException NumberFormatException |
에러 종류 | 컴파일 에러 | 실행시 에러 | 논리적 에러 |
에러의 원인 | 컴파일시에 에러 | 실행시 발생하는 에러 | 실행은 되는데 동작은 다르게 애러 |
문법상의 에러 | 사용자 입력값이 비정상적이거나 많을때 발생 | 프로그램의 순서가 틀렸을 때 발생 |
에러 | 예외 | |
정의 | 프로그래머가 소스상에서 수정할 수 없는 에러 | 가벼운 에러 (수정이 가능한 가벼운 에러) |
특징 | - 메모리 부족현상 - 이클립스 에러 |
- 소스상에서 수정이 가능 - 사용자가 0을 입력했을 때 → 다시 입력하세요 - 아이디 중복체크 - 파일입출력(경로명) - Oracle( Oracle 주소, SQL) - 서버(IP) |
처리 | 처리가 불가능 | 처리 가능 |
예외처리 | |
목적 | 프로그램의 비정상 종료를 방지하고 정상상태를 유지할 수 있게 만든다 (견고한 프로그램) |
정의 | 사전에 예상되는 에러를 대비하는 코드를 만든다 |
방법 | 1) 예외 복구 2) 예외 회피 3) 예외 임의 발생 4) 사용자 정의 예외 : 자바 라이브러리에서 전체 에러를 지원하지 않는 경우 |
예외복구 | 예외회피 | 임의발생 | 사용자정의 |
try~catch~(finally) ↓ 프로그래머가 직접 처리 ↓ 직접처리 |
throws ↓ 간접처리 ( 예외처리 회피는 순서 없다) |
throws 발생 ↓ test시 직접 에러 방생 해보고 처리 |
extends Exception |
점프 → 프로그래머가 예외 발생할 경우에 직접 처리 →정상상태유지 1) 전체 예외 처리 2) 부분적 예외처리 |
다른 메소드로 전송 → 시스템에 의해서 처리 1) 예측 2) 다른 개발자 예외처리 각자 가능 |
테스트용 | 사용자 라이브러리에서 전체 에러를 지원하지 않는 경우 - 데이터형 → 직접 데이터형 저장(클래스 - 메소드 → 사용자가 직접 제작0 |
* try : 평상시 자바 코딩 →에러 * catch : 에러 발생시 처리 부분 → 여러개 사용이 가능 * finally - 에러 발생을 불문하고 무조건 수행되는 문장 - Network, DB 에서 반드시 존재 - 서버를 연결 해제 |
정상실행 | 예외가 발생하였을 경우 |
try { 예외발생 코드 } catch (예외클래스 e){ 예외처리 }finally{ 항상 처리되는 코드 } |
int x=6, y=0; try{ int result =x/y; } catch(Exception e){ System.out.println("오류 발생"); } System.out.println("try/catch 통과"); |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
package com.sist.exception;
public class Mainclass4 {
public static void main(String[] args) {
try
{
int[] arr=new int[2];
arr[0]=100;
arr[2]=0;
int a=arr[0]/arr[1];
}catch(NumberFormatException e)
{
System.out.println("정수변환이 안됨");
}catch(ArrayIndexOutOfBoundsException e)
{
System.out.println("배열 범위가 벗어난경우");
}catch(ArithmeticException e)
{
System.out.println("0 으로 나눌경우");
}
catch(RuntimeException e) //예상 못했던 에러 => 처리
{
System.out.println("실행시 모든 에러를 처리");
}catch(Exception e) // Exception
{
System.out.println("수정이 가능한 모든 에러를 처리");
}catch(Throwable e) //error, Exception 둘 다 처리 가능
{
System.out.println("예외와 에러를 동시 처리");
}
System.out.println("프로그램 종료!!");
}
}
|
cs |
반응형
'Language > JAVA' 카테고리의 다른 글
[JAVA] JAVA라이브러리 정리/java.lang/java.util (0) | 2020.07.27 |
---|---|
[JAVA]Java.lang 패키지 정리 ① (0) | 2020.07.23 |
[JAVA]추상클래스/인터페이스 개념/인터페이스 예제 ② (0) | 2020.07.16 |
[JAVA] 추상클래스/인터페이스 개념 ① (0) | 2020.07.16 |
[JAVA]자바 random 퍼즐게임 만들기 (0) | 2020.07.15 |