442p 예외처리
14.1 *예외의 원리 이해하기
444P
runtime exception (uncheckexception)> ex) NullPointExc
check exception>try,catch
445p
447p finally
package kr.or.ksmart;
public class Exception1 {
public static void main(String[] args) {
/*
* RuntimeException - 언체크 예외
* 예외처리를 하지 않아도 작성이 가능한 코드
*
* - RuntimeException 예외도 try, catch 구문으로 예외처리가 가능하다.
* RuntimeException 클래스를 확장시켜서 작성된 언체크 Exception 클래스를 말한다.
*
* Throwable > Exception > RuntimeException
* Throwable : 메세지 및 에러 위치 출력
* Exception : Throwable에 에러 문구 전달
*/
int n = 0;
int n1 = 2 / n; //에러 강제 발생시키기
System.out.println(n1);
System.out.println("예외 발생 이후 출력 테스트");
}
}
예외 발생 이후는 실행이 안됨.
package kr.or.ksmart;
public class Exception1 {
public static void main(String[] args) {
/*
* RuntimeException - 언체크 예외
* 예외처리를 하지 않아도 작성이 가능한 코드
*
* - RuntimeException 예외도 try, catch 구문으로 예외처리가 가능하다.
* RuntimeException 클래스를 확장시켜서 작성된 언체크 Exception 클래스를 말한다.
*
* Throwable > Exception > RuntimeException
* Throwable : 메세지 및 에러 위치 출력
* Exception : Throwable에 에러 문구 전달
*/
try {
int n = 0;
int n1 = 2 / n; //에러 강제 발생시키기
System.out.println(n1);
} catch(ArithmeticException e) {
System.out.println(e.getMessage()+"<<e.getMessage()");
e.printStackTrace();
}
System.out.println("예외 발생 이후 출력 테스트");
}
}
try,catch 구문을 통해 실행 가능
package kr.or.ksmart;
public class Exception1 {
public static void main(String[] args) {
/*
* RuntimeException - 언체크 예외
* 예외처리를 하지 않아도 작성이 가능한 코드
*
* - RuntimeException 예외도 try, catch 구문으로 예외처리가 가능하다.
* RuntimeException 클래스를 확장시켜서 작성된 언체크 Exception 클래스를 말한다.
*
* Throwable > Exception > RuntimeException
* Throwable : 메세지 및 에러 위치 출력
* Exception : Throwable에 에러 문구 전달
*/
try {
int[] array1 = new int[5];
array1[6] = 2;
} catch(ArrayIndexOutOfBoundsException e) {
System.out.println(e.getMessage()+"<<e.getMessage()");
e.printStackTrace();
}
System.out.println("예외 발생 이후 출력 테스트");
}
}
package kr.or.ksmart;
public class Exception1 {
public static void main(String[] args) {
/*
* RuntimeException - 언체크 예외
* 예외처리를 하지 않아도 작성이 가능한 코드
*
* - RuntimeException 예외도 try, catch 구문으로 예외처리가 가능하다.
* RuntimeException 클래스를 확장시켜서 작성된 언체크 Exception 클래스를 말한다.
*
* Throwable > Exception > RuntimeException
* Throwable : 메세지 및 에러 위치 출력
* Exception : Throwable에 에러 문구 전달
*/
try {
String str= null;
System.out.println(str.toString());
} catch (NullPointerException e) {
System.out.println(e.getMessage()+" <<NullPointerException e.getMessage()");
e.printStackTrace();
}
System.out.println("예외 발생 이후 출력 테스트");
}
}
453p throwable (class)
456p 예외던지기 throws
MyException.java
package kr.or.ksmart;
/**
* Exception을 상속받았기 때문에 Exception의 멤버를 전부 가지고 있다.
* @author Administrator
*/
public class MyException extends Exception {
public MyException () {
super();
}
public MyException (String msg) {
super(msg + " < My 클래스의 필수값 누락 MyException");
}
}
My.java
package kr.or.ksmart;
public class My {
private String name;
public My (String name) throws MyException {
if(name == null || "".equals(name)) {
throw new MyException(name + " 인수값 null/공백");
}
}
}
Exception03.java
>> My() 생성자 메서드에 throws 키워드가 붙어있기 때문에 오류 발생.
throws, try/catch를 사용하여 에러를 제거할 수 있음.
Exception03.java
package kr.or.ksmart;
public class Exception03 {
public static void main(String[] args) {
My my = null;
try {
//my = new My(""); 생성자 메서드에서 공백 혹은 null일 때 예외 발생
my = new My("홍길동");
} catch (MyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
my.setMyAge(0); // 값이 0일 경우 강제 예외 발생
} catch (MyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 실습1. Member 클래스, MemberException 클래스를 선언하고
* Member클래스의 userName의 인수값이 null 혹은 공백일 경우 예외가 발생되도록 구현하여라.
*/
MemberException.java
package kr.or.ksmart;
public class MemberException extends Exception {
public MemberException () {
super();
}
public MemberException (String msg) {
super(msg + " < Member클래스 필수값 누락");
}
}
Member.java
package kr.or.ksmart;
public class Member {
private String userName;
public Member (String userName) throws MemberException {
if(userName == null || "".equals(userName)) {
throw new MemberException(userName + "인수값 null/공백");
}
}
}
ExceptionEx01.java
package kr.or.ksmart;
public class ExceptionEx01 {
public static void main(String[] args) {
/**
* 실습1. Member 클래스, MemberException 클래스를 선언하고
* Member클래스의 userName의 인수값이 null 혹은 공백일 경우 예외가 발생되도록 구현하여라.
*/
Member m = null;
try {
m = new Member("");
} catch (MemberException e) {
e.printStackTrace();
}
}
}
실행결과
'JAVA' 카테고리의 다른 글
[Jsoup] 스크랩핑 해보께 (0) | 2021.05.03 |
---|---|
[JAVA] 복습! (0) | 2020.07.01 |
DBCP 실습 (0) | 2020.05.14 |
DBCP (0) | 2020.05.14 |