2023.07.31 - [코드문제풀이] - [자바] 11399번 ATM
[자바] 11399번 ATM
https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 문제 인
teresa88.tistory.com
2023.07.31 - [코드문제풀이] - [자바] 1934번 최소공배수
[자바] 1934번 최소공배수
https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다
teresa88.tistory.com
2023.07.31 - [코드문제풀이] - [자바] 1436번 영화감독 숌
[자바] 1436번 영화감독 숌
https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 수라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는
teresa88.tistory.com
2023.07.31 - [코드문제풀이] - [자바] 2231번 분해합
[자바] 2231번 분해합
https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한
teresa88.tistory.com
2023.07.31 - [코드문제풀이] - [자바] 2798번 블랙잭
[자바] 2798번 블랙잭
https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의
teresa88.tistory.com
1. 자바의 예외
예외란?
- 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류
- 예외가 발생하면 프로그램은 종료
- 예외처리를 하면 종료하지 않고 정상 실행 상태가 유지되도록 한다.
- 예외는 클래스로 관리한다.
- java.lang.Exception
예외의 종류
- 일반 예외(Checked Exception)
- 컴파일 체크 예외 - 예외 처리 코드가 없으면 컴파일 오류가 발생하므로 꼭 처리 해야하는 검사형 예외이다.
- IOException, SQLException등
- 실행 예외(Runtime Exception)
- 컴파일 하는 과정에서 예외 코드를 검사하지 않는 예외
- 컴파일 시 예외 처리를 하지 않아도 컴파일 할 수 있는 비 검사형 예외
- JVM에서 해당하는 실행 예외 객체를 생성한다.
- 실행 예외 종류는 밑에 서술한다.
예외 처리 방법
- 예외 복구
- 예외 상황을 파악하고 문제를 해결하여 정상 상태로 돌려놓는 방법
- 예외 회피
- throws 키워드를 통해 직접 처리하지 않고 호출한 쪽으로 넘기는 방법
- 예외 전환
- 회피와 비슷하게 throws로 예외처리를 하지만 그냥 넘기지 않고 적합한 의미를 가진 예외로 변경하여 넘긴다.
자주 발생 하는 예외
- NullPointerException(NPE)
- 객체 참조가 없는 상태 → Null 값을 가지고 있는 . (도트)를 사용할 때 발생한다.
- 객체가 없는 상태에서 객체를 사용하려 할 때 발생한다.
- ArrayIndexOutOfBoundsException
- 배열을 다룰때 index의 범위를 초과해서 사용하는 경우 발생한다.
- NumberFormatException
- 문자열로 있는 데이터를 숫자로 바꿀때 숫자로 변환될 수 없는 문자열이 오면 발생한다.
- ClassCastException
- 타입변환(Casting)은 상위 클래스와 하위 클래스간에 발생 하고 구현 클래스와 인터페이스 간에도 발생한다.
- 위와 같은 관계가 아니라면 변환 할 수 없는데 억지도 시도할 경우 발생 한다.
예외 처리 코드
1. try ~ catch ~ finally
- 예시 코드
try {
// 예외가 발생할 가능성이 있는 코드를 넣는다.
}
catch (예외 클래스 e){
예외 처리; // 예외 처리를 한다.
}
finally {
// 무슨 일이 있어도 항상 실행
}
2. 다중 catch문
- catch 문을 여러개 작성해도 먼저 발생한 catch 블록만 실행된다.
- 상위 예외 클래스가 하위 예외 클래스보다 밑에 위치하게 작성해야 한다.
- 예시 코드
try {
// 예외가 발생할 가능성이 있는 코드를 넣는다.
}
catch (예외 클래스 1 e){
예외 처리; // 예외 처리를 한다.
}
catch (예외 클래스 2 e){
예외 처리; // 예외 처리를 한다.
}
3. 예외 넘기기
- 메소드를 호출한 곳으로 예외처리를 넘긴다.
- throws 키워드를 사용한다.
- 예시 코드
public void method1(){
try {
method2(); // throws가 붙은 method2는 반드시 이렇게 try문 안에서 호출되어야 함.
// method2가 떠넘긴 예외를 아래 catch문을 통해 처리해 주고 있다.
}
catch (ClassNotFoundException e1) {
System.out.println("클래스가 존재하지 않음.");
}
public void method2() throws ClassNotFoundException {
Class clazz = Class.forName("java.lang.String22");
}
참고한 사이트
https://dreamcoding.tistory.com/70
[자바 JAVA] 예외의 종류
자바에서 자주 발생하는 예외들과 예외에 대한 처리들에 대해서 정리 해 보도록 하겠습니다. 에러와 예외 컴퓨터 하드웨어의 동작의 오작동 또는 고장으로 인해 응용프로그램 실행 오류가 발생
dreamcoding.tistory.com
https://chanhuiseok.github.io/posts/java-3/
자바(JAVA) - exception의 종류와 예외 처리(Exception Handling, try-catch)
컴퓨터/IT/알고리즘 정리 블로그
chanhuiseok.github.io
https://jhyonhyon.tistory.com/66
[Java] 예외(Exception)의 종류
개발하면서 절대 안마주쳤으면 하지만 결국에는 마주하게되는게 바로 예외인 것 같습니다. 이 예외에도 큰 틀에서 종류가 존재한다는 것을 알고 계셨나요? 지금부터 바로 알아보겠습니다! 예외
jhyonhyon.tistory.com
https://butter-shower.tistory.com/87
[Java] 예외처리 - try~catch 문, throws문, 예외의 종류
오류의 종류 에러 (Error) 개발자가 해결할 수 없는 치명적인 오류 하드웨어의 잘못된 동작 또는 고장으로 인한 오류 에러가 발생되면 프로그램 종료 정상 실행 상태로 돌아갈 수 없음 예외 (Excepti
butter-shower.tistory.com
'스터디일지 > JAVA' 카테고리의 다른 글
[2023.08.14] 자바 1주차 문법 강의 (0) | 2023.08.14 |
---|---|
[2023.08.01] 자바 객체 지향 프로그래밍 (0) | 2023.08.01 |
[2023.07.29] StringTokenizer의 메소드 / Math 함수 / Greedy Algorithm (탐욕 알고리즘) (0) | 2023.07.29 |
[2023.07.28] 요세푸스 순열 / PriorityQueue / Heap (0) | 2023.07.28 |
[2023.07.27] BufferedWriter / Character Class (0) | 2023.07.27 |