2019년 4월 18일 목요일

Hackerrank Day 16 Exceptions - String to Integer







알고리즘 연습 사이트


Day 16:Exceptions - String to Integer



 코드를 작성하다 보면 예기치 못한 버그나 에러가 발생 할 수 있고 프로그램 동작이 멈출 수 있다.
 그런 상황에서 자바와 같은 언어는 예외처리 기능을 제공한다.

* try catch finally
 오류가 발생 할 수 있는 부분들을 try로 감싸고 catch로 에러를 잡는다.
 finally 안에는 try로 감싼 지점을 벗어나서도 반드시 실행되야 하는 코드들을 작성한다. 
finally로 감싸진 부분은 에러가 발생하더라도 무조건 실행되야 하는 코드를 작성한다.

* try with resources (1.7)
 java.lang.AutoCloseable 이나 java.lang.Closeable 클래스들을 구현하는 클래스들의 exception 처리 시 자원을 자동으로 close 해주는 유용한 문법이다. 
AuthCloseable과 Closeable 클래스를 구현하는 대표적인 클래스들은 Scanner, BufferedReader 등과 같은 IO 클래스들이다.


try(Scanner scan = new Scanner();){
      // 잠재적으로 예외가 발생할 가능성이 있는 코드를 작성 
} //괄호를 벗어나면 자원을 자동 해제

Closeable이나 AutoCloseable만 구현하는 클래스이기만 하면 예외 처리나 try 구문을 벗어날 때 자동으로 close() 가 호출된다.

오늘 문제는 String을 Integer로 변환하면서 숫자는 출력하고 문자열을 변환하려고 할 때는 try catch 구문을 이용해 에러 메시지를 출력하도록 한다.

public class Solution {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String S = in.next();
        try{
            int n = Integer.parseInt(S);
            System.out.println(n);

        }catch(Exception e){
            System.out.println("Bad String");
        }
    }
}



댓글 없음:

댓글 쓰기