ArithmeticException
public class Main {
public static void main(String[] args) {
int num1 = 5;
int num2 = 0;
System.out.println(num1/num2);
}
}

예외 처리
public class Main {
public static void main(String[] args) {
int num1 = 5;
int num2 = 0;
try {
System.out.println(num1/num2);
}
catch(ArithmeticException e) {
System.out.println("Divided by 0");
}
// 무조건 실행되는 부분
finally {
System.out.println("finally");
}
}
}

InputMismatchException
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("숫자를 입력해주세요");
int num = scanner.nextInt();
System.out.println("숫자 " + num);
scanner.close();
}
}

예외 처리
import java.util.InputMismatchException;
import java.util.Scanner;
public class TryCatch {
public void inputException() {
Scanner scanner = new Scanner(System.in);
System.out.println("숫자를 입력해주세요");
try {
int num = scanner.nextInt();
System.out.println("숫자 " + num);
}
catch(InputMismatchException e) {
System.out.println("Not a Number");
}
scanner.close();
}
}

ArrayIndexOutOfBoundsException
public class Main {
public static void main(String[] args) {
int[] intArray = {1, 2, 3, 4};
for(int i=0; i<5; i++) {
System.out.println(intArray[i]);
}
}
}

예외 처리
public class Main {
public static void main(String[] args) {
int[] intArray = {1, 2, 3, 4};
for(int i=0; i<5; i++) {
try {
System.out.println(intArray[i]);
}
catch(ArrayIndexOutOfBoundsException e) {
System.out.println("인덱스가 범위를 벗어났습니다.");
}
}
}
}

예외 클래스 만들기
public class MinusException extends Exception {
public MinusException() {
super("음수가 입력됨");
}
}
public class Main {
public static void main(String[] args) {
try {
int num = -2;
// 예외가 발생하면 에러를 던지고(throw)
if (num < 0) {
throw new MinusException();
}
}
// 에러를 잡아서(catch) 실행한다
catch (MinusException e) {
e.printStackTrace();
}
}
}