일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링
- javabasic
- 데이터베이스
- DesignPattern
- java
- 디자인패턴
- 패캠챌린지
- 재택근무
- 자바
- String
- 자바예제
- 자바연습문제
- 직장인자기계발
- 국비
- Spring
- DB
- 패스트캠퍼스
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- 웹
- 패스트캠퍼스후기
- 리눅스
- java기초
- ncs
- 자바기본
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- js
- 자바기초
- 디자인
- linux
- 직장인인강
- Today
- Total
FIF's 코딩팩토리
자바 기초 NCS교육과정(39)-예외처리 본문
Exception |
오류
1 문법적 오류 : 오타, 자바문법에 맞지 않은 로직등을 구현할때 발생한다.
2 실행오류 : 실행할때 발생되는 오류이다.
실행오류(자바 런타임 에러)
1 에러(error) : 프로그램 코드에 의해서 해결할 수 없는 심각한 오류
2 예외(exception) : 프로그램 코드에 의해서 해결할 수 있는 오류
int arr[]={10,20};
arr[3];(쓰레기값)
exception을 제공해준 목적 :
기본 시스템은 정확하지 않는 값을 처리하는데 자바에서는 정확한 값만 처리할수
있도록 exception을 제공해준다.
exception이 발생이 되면 프로그램이 정상적인 종료가 안되므로 이를 해결하기
위해서 예외처리를 제공해주고 있다.
예외가 발생되는 시점에 따라
1 checked exception
컴파일시점에 발생이 되므로 반드시 예외처리를 해야한다.
RuntimeException외 클래스들이다.
2 unchecked exception
실행시점에 발생이되므로 예외처리를 선택이다.
RuntimeException과 하위클래스들이다.
예외처리
1 try{
//exception 발생 가능이 있는 구문
}catch(//try영역에서 발생된 exception객체 선언){
//try영역에서 exception이 발생되었을때 해결해주는 구문
}finally{
//무조건 실행되는 구문
}
2 exception이 발생되었을때 처리순서
try영역-> catch영역-> finally영억
exception이 발생되지 안았을때 처리순서
try영역->finally영역
3 try영역 또는 catch영역 에서 return을 만나고 finally영역을 수행을 한다.
4 try~catch, try~finally만 작성해도 가능하다.
단 catch~finally, try은 사용할 수 없다.
5 예외의 메세지
String getMessage() :메세지
String toString() : 예외타입과 메세지
void printStackTrace() : 예외가 발생된 경로 추적
다중catch
1 is a(상속)관계에 있는 exception들을 나열할때는 제일위에 최하위 자손
제일 아래에 최상의 조상을 입력한다.
2 is a관계가 아닌 exception객체들은 순서에 상관없다.
catch(ArrayIndexOutOfBoundException ex){}
catch(RuntimeException ex){}
catch(Exception ex){}(제일 상)
throws
예외처리를 현재 메소드를 호출하는 곳으로 떠 넘길때 사용한다.
java.io, java.net
throw
강제적으로 exception을 발생시킬때 사용한다.
Java152_exception.java
public class Java152_exception { public static void main(String[] args) { int[] num = new int[] {10,20,30}; try { //예외가 발생될 가능성이 있는 구문 System.out.println(num[5]); }catch(ArrayIndexOutOfBoundsException ex){ //에외 발생 문제를 해결함 System.out.println(ex.toString()); }finally { //무조건 실행 System.out.println("에외 처리 종료"); } System.out.println("program end"); } }

Java153_exception.java
public class Java153_exception { public static void main(String[] args) { StringBuffer sb=null; try { sb.reverse(); }catch(NullPointerException ex){ System.out.println(ex.toString()); } System.out.println("prgram end"); } }

Java154_exception.java
public class Java154_exception { public static void main(String[] args) { String data1 = "10"; String data2 = "0"; try { int x = Integer.parseInt(data1); int y = Integer.parseInt(data2); int res = x / y; System.out.println(res); }catch(NumberFormatException ex){ System.out.println("숫자를 입력하세요."); }catch(ArithmeticException ex) { System.out.println("분모는 0을 사용할 수 없습니다."); }catch(RuntimeException ex) { System.out.println(ex.toString()); }catch(Exception ex) { System.out.println(ex.toString()); } System.out.println("program end"); } }

Java155_exception.java
public class Java155_exception { public static void main(String[] args) { File file=new File("samlple.txt"); FileReader fr=null; try { fr=new FileReader(file); }catch(FileNotFoundException ex ) { System.out.println(ex.toString()); }finally { try { fr.close(); }catch(IOException ex ) { System.out.println(ex.toString()); }catch(NullPointerException ex) { System.out.println(ex.toString()); } } } }

Java156_exception.java
public class Java156_exception { public static void main(String[] args) { String data1="9"; String data2="0"; try { int x= Integer.parseInt(data1); int y= Integer.parseInt(data2); process(x,y); }catch(NumberFormatException ex) { System.out.println(ex.toString()); }catch(ArithmeticException ex) { System.out.println(ex.toString()); } System.out.println("program end"); } public static void process(int x, int y) throws ArithmeticException{ int res=x/y; System.out.println(res); } }

Java157_exception.java
public class Java157_exception { public static void main(String[] args) { int num =5; process(num); System.out.println("korea"); } public static void process(int data) { try { if(data<10) { throw new ArithmeticException("10이상만 입력하세요"); } }catch(ArithmeticException ex) { System.out.println(ex.toString()); } } }

Java158_exception.java
public class Java158_exception { public static void main(String[] args) { String data="9910as"; process(data); } public static void process(String data) { char chk; for(int i=0; i<data.length();i++) { chk=data.charAt(i); if(!Character.isDigit(chk)) try { throw new UserException("숫자만 입력하세요"); } catch (UserException e) { e.printStackTrace(); System.out.println(e.toString()); return; } } System.out.println(data); } }

'Back-End > 국비 NCS교과과정' 카테고리의 다른 글
자바 기초 NCS교육과정(41)-스트림 문제풀이 (0) | 2019.08.01 |
---|---|
자바 기초 NCS교육과정(40)-스트림 (0) | 2019.08.01 |
자바 기초 NCS교육과정(38)-문자열 문제풀이 (0) | 2019.08.01 |
자바 기초 NCS교육과정(37)-Calendar() 함수 문제풀이 (0) | 2019.08.01 |
자바 기초 NCS교육과정(36)-Calendar() 함수 (0) | 2019.08.01 |