일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 패캠챌린지
- java
- linux
- 디자인패턴
- 자바예제
- 자바연습문제
- 패스트캠퍼스후기
- ncs
- 리눅스
- 자바기초
- java기초
- 디자인
- javabasic
- 직장인자기계발
- 재택근무
- 국비
- 자바
- String
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- 패스트캠퍼스
- 데이터베이스
- DB
- 스프링
- js
- 직장인인강
- DesignPattern
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- 자바기본
- 웹
- Spring
- 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 |