예외처리란?
- 프로그램이동작하는 과정 중 잘못된 입력 값이 전달되거나
- 읽어야하는 파일이 존재하지 않거나
- 배열의 인덱스를 잘못 전달했거나
- Null인스턴스에 접근을 하려했거나 등등의 이유로 오류 가 발생하는데
- 이것을 "예외" 라고 합니다

##if를 활용한 예외처리
예외를 처리하는 가장 좋은 방법은 예외를 발생시키지 않는 것입니다
1. NullPointerException
- Null Instance에 접근하려 함
- Instance가 Null 인지 먼저 확인 함
2.ArrayIndexOutOfBoundsException
- List의 인덱스 범위를 벗어남
- 찾으려는 인덱스가 존재하는지 먼저 확인 함
3.IndexOutOfBoundsException
- 배열의 인덱스 범위를 벗어남
- 찾으려는 인덱스가 존재하는지 먼저 확인 함
- NumberFormatException
- 숫자가 아닌 문자를 숫자로 변환하려 함
- 문자가 숫자형태인지 확인 함
이렇게먼저 확인하는 코드를 “Validation Logic” 이라고 하며 입력값 검증 “ 이라고
표현하기도 합니다
- null인지확인
- 배열길이를 초과하는지 확인
- 숫자인기 확인
18. try-catch-finally
if로 예외 처리할 수 없는 경우?
java의 예외 종류는 크게 두가지가 있다.

Exception인 경우

사용자 예외 발생시키기
Java에서 제공하는 내장 Exception 은 Java Application 이 동작할 때 ,
코드의 조건을 만족하지 못했을 때 지정된 Exception 이 발생하도록 되어 있다
몇가지 코드의 조건을 살펴보면
- Null값을 가진 Instance 에 점 연산자를 사용함 -> NullPointerException
- 숫자형태가 아닌 문자를 숫자로 변환하려 함 -> NumberFormatException
- 존재하지않는 파일을 읽으려 함 -> FileNotFoundException
- 0으로 나누려 함 -> ArithmaticException
- 배열의인덱스 범위를 초과하여 참조하려 함 -> ArrayIndexOutOfBoundsException
개발자가직접 조건을 정의하고 지정된 Exception 을 발생시킬 수도 있는데
이것은 사용자 예외 혹은 커스텀 예외 라고 합니다
ex)
- 사용할 수 없는 ID 입니다 . -> InvalidUserIdException
- 이미사용 중인 ID 입니다 . -> AlreadyUseUserIdException
- ID는 최소 8 글자 이상 입력하세요 . -> UserIdLengthException
- 비밀번호는 영어 대 소문자 포함 ), 숫자 , 특수기호를 사용해 10 자리 이상 입력하세요
PasswordFormatException

강제종료 못하게 예외처리를함
if
try catch
자바가 말고 우리가 만드는 예외처리
=> 사용자 예외 발생시키기

thorws가 받기때문에 try catch를 사용

throws를 안사용해서 try catch안사용

runtime으로 바꾸면 호출에서 try catch가 필요없다

