[포스코x코딩온] 웹개발자 풀스택 부트캠프8기
[포스코x코딩온] Java - 예외처리
항상 발전하는 개발자
2023. 10. 24. 01:21
728x90
예외 처리
- 컴파일 오류와는 다르다.
- 컴파일 오류는 문법에 맞지 않게 작성된 코드가 있을 때 발생한다.
- 컴파일 할 때 발견되기 때문에 코드가 실행조차 되지 않는다.
- 예외란, 프로그램 실행 중에 의도치 않는 결과가 나오는 것을 의미한다.
- 예외를 처리하고 방지하는 것을 예외 처리라고 한다.
예외가 발생하는 경우
- 숫자를 0으로 나누는 경우(ArithmeticException)
- 배열의 인덱스 범위는 벗어나는 경우(ArraylndexOutOfBoundsException)
- 정수를 입력받도록 작성한 코드에 문자열을 입력한 경우(InputMismatchException)
- import 필요
- import java.util.InputMismatchException;
- 여러가지 더 있다.
Try-Catch-Finally
try{
//예외가 발생할 가능성이 있는 실행문(try 블록)
}
catch(처리할 예외 타입 선언){
//예외 처리문(catch 블록)
}
finally{
//예외 발생 여부와 상관없이 무조건 실행되는 문장(finally 블록)
//(finally 블록은 생략 가능)
}
- 사용 예시
package exception;
import java.util.InputMismatchException;
import java.util.Scanner;
public class ExceptionTest {
public static void main(String[] args) {
//예외처리
int num1 = 4;
int num2 = 0;
// System.out.println(num1+"/"+num2+"="+(num1/num2));
//
// System.out.println("여기가 읽힐지");
try {
System.out.println(num1+"/"+num2+"="+(num1/num2));
}catch(ArithmeticException e) {
System.out.println("0으로 나누는 예외가 발생하였습니다.");
}
System.out.println("여기가 읽힐지");
//인덱스 범위를 벗어났을 때
int[] intArr = {1,2,3,4};
try {
for(int i = 0; i <intArr.length + 1; i++) {
System.out.println(intArr[i]);
}
}catch(ArrayIndexOutOfBoundsException e) {
System.out.println("인덱스가 범위를 벗어났습니다.");
}
//입력오류 시 발생하는 예외
Scanner sc = new Scanner(System.in);
System.out.println("정수를 입력하세요: ");
try {
int n = sc.nextInt();
}catch(InputMismatchException e) {
System.out.println("입력값이 잘못됨. 정수를 입력해주세요.");
}
sc.close();
}
}
package exception;
public class Practice_exception {
public static void main(String[] args) {
int[] arr = {1,2,3,4};
try {
for(int i=0; i<7; i++) {
System.out.println(arr[i]);
}
}catch(ArrayIndexOutOfBoundsException e) {
System.out.println("인덱스가 범위를 벗어났습니다.");
}
}
}
728x90