요르딩딩
[뉴렉처] 자바 예외처리 (4,5,6,7강) 본문
728x90
반응형
4강 <예외 클래스 생성과 던지기>
public calss Calculator{
public Calculator(){}
public static int add(int x, int y) throws 천을 넘는 예외, 음수가 되는 예외{ //내가 처리하지 않고, 나를 사용하는 책임지가 처리하도록 위로 던지는 방법
int result = x + y;
if(result > 1000)
throw new 천을 넘는 예외(); // 예외 식별자인 클래스를 만들어야한다, 여기서 던졌지만 제일 먼저 받는것은 자가자신이고. 자기자신이 처리하지 않겠다라고 하면 위로 던진다.
if(result < 0)
throw new 음수가 되는 예외(); // 예외 식별자인 클래스를 만들어야한다.
return return;
}
...
}
public static coid main(String[] args) throws 천을 넘는 예외, 음수가 되는 예외{
Calculator calc = new Calculator();
int result = 0;
result = Calculator.add(3,-4); //예외 발생하면서 더이상 진행이 되지 않는다. 예외를 처리하지않고 런타임에게 던졌기 때문이다.
…
}
이는 의미없는 예외를 던지는 경우이므로 최대한 사용하지 않도록 합니다.
5강 <예외 처리하기>
에러메세지를 사용하는 이유
- 사용자에게 안내
- 치명적인지 아닌지에 따라서 이어서 실행할지 안할지 판단.
- catch로 예외를 잡은 경우 thow 할 필요가 없습니다.
public static coid main(String[] args) throws 음수가 되는 예외{ //자바 런타임이 예외를 받게 된다.
Calculator calc = new Calculator();
int result = 0;
try{
result = Calculator.add(3,10004);
}
catch(천을 넘는 에외 e ){ //천을 넘는 예외를 처리하는 부분
System.out.println(“e.getMessage”);
}
…
}
public class 천을 넘는 예외 extends Exception{
@Override
public String getMessage(){
return “입력 값의 합이 1000을 넘는 오류가 발생했습니다.”
}
}
6강 <다중 예외처리>
# 동일하거나 상이한 예외를 처리하는 방법
public static coid main(String[] args){
Calculator calc = new Calculator();
int result = 0;
try{
result = Calculator.add(3,10004);
}
catch(천을 넘는 에외 | 음수가 되는 예외 e){ // 두개의 예외가 동일한 처리를 요할 경우
System.out.println(“e.getMessage”);
}
또는
try{
result = Calculator.add(3,10004);
}
catch(천을 넘는 에외 e){ //두개의 예외가 상이한 처리를 요할 경우
System.out.println(“e.getMessage”);
}
catch(음수가 되는 예외 e){ //두개의 예외가 상이한 처리를 요할 경우
System.out.println(“e.getMessage”);
}
…
}
public calss Calculator{
public Calculator(){}
public static int add(int x, int y) throws 천을 넘는 예외, 음수가 되는 예외{ //내가 처리하지 않고, 내를 사용하는 책임지가 처리하도록 위로 던지는 방법
int result = x +y;
if(result > 1000)
throw new 천을 넘는 예외();
if(result < 0)
throw new 음수가 되는 예외();
return return;
}
public static int sub(int x, int y) throws 음수가 되는 예외{ //내가 처리하지 않고, 내를 사용하는 책임지가 처리하도록 위로 던지는 방법
int result = x - y;
if(result < 0)
throw new 음수가 되는 예외();
return return;
}
…
}
# 나머지(마지막에 Exception e) 예외를 처리하거나, 무조건(finally) 실행되는 예외처리 적용하는 방법
public static coid main(String[] args){
Calculator calc = new Calculator();
int result = 0;
try{
result = Calculator.add(3,10004);
result = Calculator.sub(3,10004); //예외가 발생할 수 있는 것들의 하나의 범주안에 넣어 사용할 수 있다. (한번에 처리 가능)
}
catch(천을 넘는 에외){
System.out.println(“e.getMessage”);
}
catch(Exception e){ //나머지 예외처리하는 방법 (마지막에 존재해야한다. 순차적이기 때문에, 모든것을 다 받는 예외)
System.out.println(“음수 처리”);
}
finally{ // 어떤 예외가 처리되던지 항상 지나처간다. 예외마다 동일한 메세지 출력 가능
System.out.println(“입력값에 오류가 있습니다.”);
}
}
7강 <Unchecked 예외>
- 예외의 종류
- checked 예외
- Unchecked 예외
# Unchecked 예외의 경우 런타임시 에러를 확인해보도록 해보자.
public static coid main(String[] args){ //자바 런타임이 예외를 받게 된다.
Calculator calc = new Calculator();
int result = 0;
result = Calculator.add(3,10004);
result = Calculator.sub(3,10004);
result = Calculator.div(3,0);
}
public calss Calculator{
public Calculator(){}
public static int add(int x, int y) {
int result = x + y;
if(result > 1000)
throw new 천을 넘는 예외();
if(result < 0)
throw new 음수가 되는 예외();
return return;
…
}
public static int sub(int x, int y) {
int result = x - y;
if(result < 0)
throw new 음수가 되는 예외();
return return;
…
}
}
# 런타임시 예외를 처리하려할 경우 (RunTimeException)
//unchecked 예외 강제화 하지 않겠다. 런타임실행할때 판단해보도록하자.
public class 천을 넘는 예외 extends RuntimeException{
@Override
public String getMessage(){
return “입력 값의 합이 1000을 넘는 오류가 발생했습니다.”
}
}
//unchecked 예외 강제화 하지 않겠다. 런타임실행할때 판단해보도록하자.
public class 음수가 되는 예외 extends RuntimeException{
@Override
public String getMessage(){
return “음수가 발생했습니다.”
}
}
728x90
반응형
'[Web] > [Error & Exception]' 카테고리의 다른 글
자바 예외처리 (정리) (0) | 2022.01.17 |
---|---|
[뉴렉처] 자바예외처리 (1,2,3강) (0) | 2022.01.14 |
Spring 404 error 해결하는 법 (0) | 2021.12.21 |
Comments