예외란 프로그래밍 상 문법적으로는 이상이 없으나 프로그램 실행 중에 발생하는 예기치 못한 사건으로 발생하는 에러를 뜻한다.
처리 문법은
try~catch~finally
public class Test {
public void shouldBeRun() {
System.out.println("ok thanks.");
}
public static void main(String[] args) {
Test test = new Test();
int c;
try {
c = 4 / 0;
} catch (ArithmeticException e) {
c = -1;
} finally {
test.shouldBeRun();
}
}
}
throw를 통해 예외 발생 , Class 내에서 예외를 다른 곳으로 미루고 싶다면 throws
public class Test {
public void sayNick(String nick) {
if("fool".equals(nick)) {
throw new FoolException();
}
System.out.println("당신의 별명은 "+nick+" 입니다.");
}
public static void main(String[] args) {
Test test = new Test();
test.sayNick("fool");
test.sayNick("genious");
}
}
public void sayNick(String nick) throws FoolException {
if("fool".equals(nick)) {
throw new FoolException();
}
System.out.println("당신의 별명은 "+nick+" 입니다.");
}
트랜잭션은 하나의 작업 단위 -> 예외처리를 통해 작업 단위를 구분하고, 하나의 작업 중에 발생하는 에러에 대해 공통으로 처리할 수 있다.
상품발송() {
try {
포장();
영수증발행();
발송();
}catch(예외) {
모두취소();
}
}
포장() throws 예외 {
...
}
영수증발행() throws 예외 {
...
}
발송() throws 예외 {
...
}
'Archived(CSE Programming) > Java' 카테고리의 다른 글
Java 마커 인터페이스 (0) | 2019.11.03 |
---|---|
Java_메모리 구조 (0) | 2019.11.03 |
Java 컬렉션(Collection) (0) | 2019.11.03 |
Java 추상클래스, 인터페이스 (0) | 2019.11.03 |
Java 오버로딩과 오버라이딩 (0) | 2019.11.02 |