에러 vs 예외
에러(Error) | 컴퓨터 하드웨어의 오동작 또는 고장으로 인한 오류 프로그래머가 해결할 수 없는 중대한 오류 |
예외(Exception) | 사용자가 잘못 실행하거나 개발자의 잘못된 코딩으로 발생하는 프로그램 오류 프로그래머가 해결할 수 있는 가벼운 오류 |
예외의 종류
예외는 일반예외와 실행예외 2가지로 나뉜다.
일반예외 (Exception) | 컴파일러 체크 예외. 자바소스를 컴파일하는 과정에서 문법에 오류 발생 예를들어 Stirng 이라고 작성하는 등 문법에 어긋나는 예외 |
실행예외 (Runtime Exception) | 컴파일 과정에서 예외처리 코드를 검사하지 않는 예외 개발자가 직접 예외처리 코드를 작성해야함 |
예외 발생시 실행 결과
일반예외 | 컴파일러가 자바파일을 컴파일하는 과정에서 실패. 프로그램 시작 불가 |
실행예외 | 예외가 발생하는 코드를 만나면 프로그램 실행 중 중단됨 |
예외처리가 필요한 이유
오류가 발생해도 프로그램이 종료되지 않고 계속 실행될 수 있도록 함
자주 발생하는 예외
실행예외는 자바 컴파일러가 경고창을 띄우지 않기 때문에 프로그램을 실행하는 과정에서
마주하는 예외이다. 아래는 개발상황에서 자주 마주하는 예외상황이다.
NullPointerException
null 값을 참조변수로 하는 객체에서 객체 접근연산자를 실행할 때 발생하는 상황이다.
없는 객체에 기능을 수행하려고 하니 발생하는 예외상황.
ArithmeticException
어떤 수를 0으로 나누려고 할 때 발생하는 예외
ArrayIndexOutOfBoundsException
배열에서 주어진 범위를 초과하여 코드가 실행되는 경우 발생하는 예외이다.
NumberFormatException
코딩의 세계에서는 숫자 형식과 문자 형식이 다르다. 하지만 타입 변환과정 통해 형태를 변환할 수 있다.
NumberFormatException 은 숫자로 변환할 수 없는데 숫자로 변환하려는 코드에서 발생하는 예외이다.
String str = "120";
Integer.parseInt(str);
Integer.parseInt("12345");
Integer.parseInt("t-shirt"); //exception
ClassCastException
Casting이란 원하는형태로 적절히 클래스를 변환하는 것을 말한다.
상속이 이루어진경우 상위클래스<->하위클래스 혹은 인터페이스 <-> 구현객체 간에 casting이 이루어진다.
올바른 방식으로 casting을 하지 않는 경우 발생하는 예외
'Java > 기본' 카테고리의 다른 글
[Java] 유용한 클래스 - Calendar, Date (0) | 2021.06.20 |
---|---|
[Java] 예외처리 - 예외 처리하기 (0) | 2021.06.18 |
[Java] 객체지향 - 추상화와 인터페이스 (0) | 2021.06.12 |
[Java] 객체지향 - 상속 (0) | 2021.06.12 |
[Java] 객체지향 - 접근제한자(Access Modifier) (0) | 2021.06.11 |