[Java]/Program source (java)
150, 151 - Java 예외처리(Exception Handling) : 사용자로부터 음수를 입력받았을 때 프로그램이 종료되도록, new 객체생성 연산자로 예외를 생성. throw new Exception("value 값 오류")
Jelly-fish
2023. 9. 20. 15:53
/* ============================================
■■■ 예외 처리(Exception Handling) ■■■
=============================================*/
// Test151.java 파일과 비교~!!!
class Demo
{
private int value;
public void setValue(int value)
{
if (value <= 0) // 매개변수로 음수를 넘겨주면 바로 메소드 종료하고 출력.
{
return; // return을 포함한 가장 가까운 메소드 종료.(setValue())
//-- 메소드 종료 → setValue()
//-- 원래는 바로 종료되고 메소드가 동작하지 않도록 구성하려고 했는데
// 0으로 초기화 되면서 0 값이 출력된다. → 원하지 않았던 상황.
}
this.value = value; // 음수면 value 변수를 초기화하지 않는다.
}
public int getValue()
{
return value;
}
}
public class Test150
{
public static void main(String[] args)
{
Demo ob = new Demo();
ob.setValue(-3);
int result = ob.getValue();// 전역변수, Demo 인스턴스 생성하면서 value 값이 0으로 초기화 되므로.
System.out.println(result);
}
}
/* ============================================
■■■ 예외 처리(Exception Handling) ■■■
=============================================*/
// Test150.java 파일과 비교~!!!
// ※ throw
class Demo
{
private int value;
public void setValue(int value) throws Exception
{
if (value <=0)
{
// return;
throw new Exception("value 는 0 보다 작거나 같을 수 없습니다.");
// new 라는 객체생성연산자를 통해서 예외(Exception)를 생성하고 있는 구문이다.
// ★☆ 『예외를 생성했으므로... 필수적으로 예외처리를 해 주어야 한다.』
}
this.value = value; // 전역 변수 value를
// 메소드의 매개변수로 전달된 int 값으로 초기화
}
public int getValue() // value 값을 가져오는 메소드 (private 접근제어지시자로 설정되었으므로)
{
return value;
}
}
public class Test151
{
public static void main(String[] args) //throws Exception
{
Demo ob = new Demo();
try
{
ob.setValue(-3);
int result = ob.getValue();
System.out.println(result);
}
catch (Exception e)
{
System.out.println(e.toString());
}
}
}
// 실행 결과
/*
java.lang.Exception: value 는 0 보다 작거나 같을 수 없습니다.
계속하려면 아무 키나 누르십시오 . . .
*/