🌺 Exception : 예외처리(오작동 발생) - 종류 엄청많음
1. 사용자의 입력실수로 인해 정보전달이 안될 경우
2. 개발자가 프로그램 오류시 정확한 오류 파악을 하기 위한 수단
3. 강제 프로세서에 대한 정보 수정 및 종료try{ }catch(Exception 변수){ }finally { }
ex) 회원가입시 예외처리 사항
1. id에 한글 입력
2. 이메일 관련
3. 연락처 관련
4. 동의 및 미동의(체크박스) 관련 - 미체크시 null값 날라오면 error
5. 첨부파일 - 용량,파일속성,여러개 서버로 전송시
6. FTP 및 메일
👀내가 해보니까~
예외처리 : if else와 비슷한데 좀더 포괄적인 느낌..? 오류나냐 안나냐로만 나눠서 출력!
try( 명령 ) 에서 오류난것들은 싹다 catch에서 실행!
⚡ try,catch
try : 프로세스 진행(검토하기 위함)
catch : try에서 문제 발생시 해당 문법이 발동
finally : try가 되던 catch가 되던 무조건 작동되는 영역(개발자 선택사항,안써도됨)
(정상적으로 출력 시 발동x , 실무에선 catch를 많이 작성하진 않음 )
package oop2; import java.util.Scanner; public class ex1 { public static void main(String[] args) { //test aa,bb String a = "2000"; double b = 0; //test cc Scanner sc = new Scanner(System.in); System.out.println("숫자를 입력해 주세요 : "); try { //try : 프로세스 진행 b = Integer.valueOf(a) / 3; //System.out.println(b); Integer user = sc.nextInt(); }catch(java.lang.NumberFormatException bb) { //오류내용 입력 + 변수(같은 이름으로 Exeption을 사용하지 않음) System.out.println("문자를 숫자로 변경되는 사항 오류 발생!!"); }catch(java.util.InputMismatchException cc) { System.out.println("숫자로 입력하지 않음"); }catch(Exception aa){ //catch는 try에서 문제 발생시 해당 문법이 발동 System.out.println(aa); } sc.close(); } }
//기본 예제2package oop2; import java.util.Scanner; public class ex2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("사용자 이름을 입력해주세요 : "); try { String username = sc.nextLine().intern(); if(username == "" || username == null) { System.out.println("미입력"); }else { System.out.println("입력완료"); System.out.println("연락처를 입력하세요. 단, - 없이 입력"); Integer tel = sc.nextInt(); System.out.println(tel); } }catch(Exception e) { System.out.println(e); }finally { //try가 되던 catch가 되던 무조건 작동되는 영역(개발자 선택사항,안써도됨) System.out.println("실행"); sc.close(); } } }
⚡ 변수.printStackTrace();
오류 발생시 몇번째 라인에서 오류났는지 출력해줌
package oop2; public class ex3 { public static void main(String[] args) { String a = "50s00"; int b = 0; try { b = b + Integer.parseInt(a); }catch(java.lang.NumberFormatException nfe) { //해당 예외처리가 발생시 nfe.printStackTrace(); //해당 문법으로 문제처리를 한 후 결과값을 정상적으로 진행시킴 a = a.replaceAll("[a-zA-Z]", ""); b = b + Integer.parseInt(a); //다시 실행 }catch(Exception e) { e.printStackTrace(); //오류 발생시 몇번째 라인에서 오류났는지 출력해줌 //System.out.println(e); } System.out.println(b); } }
⚡ 예외처리 응용편(reload)
package oop2; import java.util.Scanner; //예외처리 응용편(reload) public class ex4 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("입금할 금액을 입력하세요 : "); try { int money = sc.nextInt(); System.out.println("정상적으로 입금이 완료되었습니다."); }catch(Exception e) { System.out.println("숫자만 제발 입력하세요ㅠ"); //해당 클래스와 메소드를 재실행시킴 //main 처음부터 다시 실행 (숫자 입력할때까지 재실행됨! like 재귀) ex4 ex = new ex4(); ex.main(args); }finally { sc.close(); } } }
'CLASS > JAVA' 카테고리의 다른 글
#12 / remind2 (0) | 2024.05.17 |
---|---|
#11-2 / 배열을 이용한 예외처리 (0) | 2024.05.16 |
#10-2 / 단어 검토 및 변경(정규식 코드) (0) | 2024.05.14 |
#10-1 / Interface (0) | 2024.05.14 |
#9-3 / class + class (0) | 2024.05.13 |