예외처리 두번째 방법임.
ㅁ. 간단할 설명.
'readMessage();' 에서 일을 다 처리하기 때문에 정작 메인에서는 알 수가 없다.
따라서, 'readMessage2();' 에서 작업을 시킨다음에 그 작업내역을 메인으로 던져서(throw) 메인에서 일(TryCatch)을 할 수 있게 한다.
01.
※. 코드
import java.io.IOException;
public class Test {
public static void main(String[] args) {
String msg;
// 호출당한 readMessage()에서 예외처리
msg = readMessage();
System.out.println("msg = " + msg);
// readMessag2() 문제발생하면 처리하지 않고,
// 나한테 알려만 주기때문에,
// 내가 예외 처리해줌.
try {
msg = readMessage2();
} catch (IOException e) {
System.out.println("Reason : " + e.getMessage());
}
}// main
// 호출 당한 함수는 문제가 발생하면 처리하지 않고,
// 나를 호출한 함수한테 알려주는 방법.
public static String readMessage2() throws IOException
{
byte[] buffer = new byte[1024];
System.out.println("문자열을 입력하시오.");
System.in.read(buffer);
return new String(buffer);
}
// 호출을 당한 함수가 예외 처리하는 경우
public static String readMessage()
{
//return "Hello ~~";
byte[] buffer = new byte[1024];
System.out.println("문자열을 입력하시오.");
// 키보드의 입력은 OS는 모두 파일로 인식
try {
System.in.read(buffer);
} catch (IOException e) {
System.out.println("Reason : " + e.getMessage());
}
return new String(buffer);
}
}// Main Class