728x90
반응형
🎃 에러
public static void main(String[] args) {
int num = 100/0;
}
자바에는 '100/0'과 같은 무한대 값을 표현할만한 자료형이 없다.
이 코드를 실행하면 빨간줄은 없지만, 무한대 값에 대한 오류가 난다.
개발 중 Console에서 이러한 예외 문구를 본 적이 있을것이다.
해당 사진에서는 int num = 100/0; 부분에서 ArthmeticException이라는 예외가 발생했다고 한다.
실행 전에는 빨간줄이 없었는데 이런 문구가 나온다면, 에러 중에서도 예외처리가 가능한 에러인 것이다.
💊 예외 처리
public static void main(String[] args) {
try {
int num = 100/0;
} catch(ArithmeticException e) {
e.printStackTrace();
System.out.println("0으로 나누면 예외가 발생합니다. 프로그램을 종료하겠습니다.");
return; // 메인메서드를 강제종료
} finally {
System.out.println("저는 항상 실행됩니다.");
}
}
try / catch / finally 를 사용하여 예외 처리를 진행한다.
try : 예외 처리를 할 코드 (문제가 생길만한 코드)
catch : 예외 처리 (오류가 난 경우 실행될 코드)
finally : 예외처리 여부에 상관없이 무조건 실행되는 코드
catch(예외 e)를 적어주면 그 예외에 대한 검사를 하는데, catch(Exception e)로 작성해도 무방하다.
모든 예외들은 Exception을 상속받고 있기 때문에 부모인 Exception을 사용하면 모든 예외가 처리된다. (다형성)
다만 여러 종류의 예외를 각각 다르게 처리하려면 예외를 정확하게 적는 것을 추천한다.
e.printStackTrace();를 통해 예외 발생시 Console에 뜨는 문구를 확인할 수 있다.
예외처리가 정상적으로 되었고, 예외 문구도 같이 출력되었다.
catch에서 메인메서드를 종료하는 return도 존재했지만, finally는 무조건 실행된다.
728x90
반응형
'언어 > Java' 카테고리의 다른 글
[java] Map / table join의 데이터 처리 (0) | 2021.10.06 |
---|---|
[java] list / set (0) | 2021.10.06 |
Java 메서드 정리 / 생성자, 일반 (0) | 2021.09.13 |
이클립스 getter,setter 자동 생성 / 정보은닉과 캡슐화 (0) | 2021.09.10 |
Java ArrayList 사용법 정리 / 동적 배열 (0) | 2021.08.29 |