/ by zero 오류 발생
class ExceptionEx02 {
public static void main(String args[]) {
int number = 100;
int result = 0;
for(int i=0; i < 10; i++) {
result = number / (int)(Math.random() * 10); // 7번째 라인
System.out.println(result);
}
} // main의 끝
}
예외처리
class ExceptionEx03 {
public static void main(String args[]) {
int number = 100;
int result = 0;
for(int i=0; i < 10; i++) {
try {
result = number / (int)(Math.random() * 10);
System.out.println(result);
} catch (ArithmeticException e) {
System.out.println("0");
} // try-catch의 끝
} // for의 끝
}
}
class ExceptionEx05 {
public static void main(String args[]) {
System.out.println(1);
System.out.println(2);
try {
System.out.println(3);
System.out.println(0/0);
System.out.println(4); // 실행되지 않는다.
} catch (ArithmeticException ae) {
System.out.println(5);
} // try-catch의 끝
System.out.println(6);
} // main메서드의 끝
}
class ExceptionEx07 {
public static void main(String args[]) {
System.out.println(1);
System.out.println(2);
try {
System.out.println(3);
System.out.println(0/0);
System.out.println(4); // 실행되지 않는다.
} catch (ArithmeticException ae) {
if (ae instanceof ArithmeticException)
System.out.println("true");
System.out.println("ArithmeticException");
} catch (Exception e) {
System.out.println("Exception");
} // try-catch의 끝
System.out.println(6);
} // main메서드의 끝
}
class ExceptionEx08 {
public static void main(String args[]) {
System.out.println(1);
System.out.println(2);
try {
System.out.println(3);
System.out.println(0/0); // 예외발생!!!
System.out.println(4); // 실행되지 않는다.
} catch (ArithmeticException ae) {
ae.printStackTrace();
System.out.println("예외메시지 : " + ae.getMessage());
} // try-catch의 끝
System.out.println(6);
} // main메서드의 끝
}
try{
// 예외가 발생할 가능성이 있는 문장
} catch (Exception e) {
// 예외 처리를 위한 문장
} finally {
예외 발생 여부와 상관 없이 수행
}
public class ExceptionTest6 {
public void exceptionMethod() throws Exception{
throw new Exception(); // 예외 객체를 임의로 발생시켜 주는 예약어
}
/**
* throws 테스트
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ExceptionTest6 et6 = new ExceptionTest6();
try{
et6.exceptionMethod();
}
catch(Exception e){
System.out.println("호출한 메소드에서 예외 처리함");
}
}
}
Exception 생성
package chapter11;
public class LoginException extends Exception {
LoginException(String msg) {
super(msg);
}
}
테스트 - Exception 사용
package chapter11;
import java.util.Scanner;
public class ExceptionEx8 {
static String user_id = "seo";
static String user_pw = "smg1234";
public static void main(String[] args) throws Exception {
try {
Scanner scan = new Scanner(System.in);
System.out.print("아이디 : ");
String input_id = scan.nextLine();
System.out.print("비밀번호 : ");
String input_pw = scan.nextLine();
if (!user_id.equals(input_id)) {
throw new LoginException("로그인 : 아이디가 올바르지 않습니다.");
} else if (!user_pw.equals(input_pw)) {
throw new LoginException("로그인: 비밀번호가 올바르지 않습니다.");
} else {
System.out.println("로그인 성공");
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}