예외처리가 필요한 이유를 알기 전에 간단하게 프로그램을 만들어보자.
이 프로그램은 사용자에게 입력을 받고, 입력 받은 문자를 외부로 전송하는 프로그램이다.
package exception.ex0;
import java.util.Scanner;
public class MainV0 {
public static void main(String[] args) {
NetworkServiceV0 networkServiceV0 = new NetworkServiceV0();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("전송할 문자: ");
String input = scanner.nextLine();
if (input.equals("exit")) {
break;
}
networkServiceV0.sendMessage(input);
System.out.println();
}
System.out.println("프로그램을 정상 종료합니다.");
}
}
package exception.ex0;
public class NetworkClientV0 {
private final String address;
public NetworkClientV0(String address) {
this.address = address;
}
public String connect() {
// 연결 성공
System.out.println(address + " 연결 성공");
return "success";
}
public String send(String data) {
// 전송 성공
System.out.println(address + " 서버에 데이터 전송: " + data);
return "success";
}
public void disconnnect() {
System.out.println(address + " 서버 연결 해제");
}
}
package exception.ex0;
public class NetworkServiceV0 {
public void sendMessage(String data) {
String address = "http://example.com";
NetworkClientV0 client = new NetworkClientV0(address);
client.connect();
client.send(data);
client.disconnnect();
}
}
Main은 사용자에게 문자열을 입력받아 NetworkService에 전달한다.
NetworkService는 NetworkClient를 생성한 후,
순서로 작업을 수행한다.
현재 버전(V0)은 모든 작업이 정상적으로 성공한다고 가정하고 작성되었다.
그렇지만 실제로는
같은 오류가 발생할 수 있다.
따라서, 예외처리가 필요한 이유는 이런 비정상적인 상황에서도 프로그램이 정상적으로 작동할 수 있도록 하기 위해서다.