ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TIL_6(Exception Handling, Network)
    TIL 2020. 9. 2. 18:53

    [예외처리]

     

    1. Exception vs. Error

     

    Exception Error
    개발자가 대처할 수 있다. 개발자가 대처할 수 없다.
    코딩문제로 발생. 소프트웨어 문제, 전력차단, 서버 다운 등의 문제.

     

    2. Exception 유형

    Checked Exception: 예외처리를 반드시 해야 하는 경우(네트워크, 파일 시스템 등)

    Unchecked Exception: 예외처리를 선택적으로 하는 경우(데이터 오류 등)

     

    3. Exception 하위 클래스

    NullPointerException, NumberFormatException, NumberFormatException 등이 있다.

     

    3. try ~ catch finally

     

    		int i = 10;
    		int j = 0;
    		int r = 0;
    		
    		System.out.println("Exception BEFORE");
    		
    		try {
    			r = i / j;
    		} catch (Exception e) {
    			e.printStackTrace();
    			String msg = e.getMessage();
    			System.out.println("Exception: " + msg);
    		} finally {
    			System.out.println("예외 발생 여부와 상관없이 언제나 실행");
    		}
    		
    		System.out.println("Exception AFTER");

     

    try 문 안에서 예외가 발생할 구문 밑으로 실행되지 않는다. 바로 try문 밖으로 나간다

     

    4. finally

    예외 발생 여부와 상관없이 언제든 실행한다.

     

    5. throws

    예외 발생 시 예외 처리를 직접 하지 않고 호출한 곳으로 넘긴다.

     

    public class MainClass2 {
    
    	public static void main(String[] args) {
    		MainClass2 mc2 = new MainClass2();
    		try {
    			mc2.firstMethod();
    		} catch(Exception e) {
    			e.printStackTrace();
    		} finally {
    			System.out.println("I'm Finally");
    		}
    	}
    	
    	public void firstMethod() throws Exception {
    		secondMethod();
    	}
    	
    	public void secondMethod() throws Exception {
    		thirdMethod();
    	}
    	public void thirdMethod() throws Exception {
    		System.out.println("10 / 0 = " + (10 / 0));
    	}
    }

     

     

    6. 실무에서 중요한 점:

    예외처리를 throws, try catch 중 어떤 것을 이용할지 결정 기준

    어디까지 예외처리를 할지 범위

     

    [네트워크]

    1. 네트워크

    네트워크 대상(객체) 사이에 입/출력(InputStream/OutputStream)을 이용해서 데이터를 입력, 출력한다.

     

    2. 소켓(Socket)

    네트워크상에서 데이터를 주고받기 위한 장치이다.

    사람들이 소지한 전화기를 예로 들 수 있다.

     

    3. Socket 클래스

    서버는 클라이언트를 맞을 준비를 하고 있다가 클라이언트의 요청에 반응한다.

     

    serverSocket = new ServerSockey(9000);
    socket = serverSocket.accept();

     

    4. Client 소켓과 Server 소켓

    서버에 ServerSocket을 준비하고 클라이언트에서 Socket을 이용해서 접속한다.

     

    Socket socket = null;
    
    try {
    	socket = new Socket("localhost", 9000);
        
        }

     

    5. 양방향 통신

    클라이언트와 서버는 InputStream, OutputStream을 이용해서 양방향 통신을 할 수 있다.

    'TIL' 카테고리의 다른 글

    TIL_8(대입연산자, if문, for, while문)  (0) 2020.09.17
    TIL_7(Method)  (0) 2020.09.03
    TIL_5(Input&Output)  (0) 2020.09.01
    TIL_4(Lambda Expressions, StringBuffer & StringBuilder, Collections)  (0) 2020.08.31
    TIL_3 (abstract class)  (0) 2020.08.29
CokeWorld DevLog