본문 바로가기

JAVA/★객체지향36

예외 만들기/(여러가지 예외들 설명)IllegalArgumentException //IllegalStateException ... 지금까지 API의 소비자로서 API 측에서 던지는 예외를 처리하는 방법을 알아봤는데 이번에는 API의 생산자로서 소비자들에게 API를 제공하는 입장에서 예외를 만들어볼거다 첫번째 방법으로는 setoperands가 실행될 때 exception을 발생시켜보자 두번째가 적합할듯!! ( setoprands에서 sum avg 할수도 있으니깐 ) divide와 관련된 작업할때만 right값이 0이 아니게 ​ 위에 ArithmeticException객체가 throw에서부터 divide의 실행을 멈춘다 ( 아래로직은 실행안한다) -0으로 못나눠욧 메인메소드를 보면 try가 있네 -> exception이 발생한 같은 데이터타입을 찾아서 catch구문을 메소드처럼 실행하는데 new라는 객체를 e에 넣어줌 getmessag.. 2023. 3. 13.
예외(3) - throw(폭탄돌리기) 1)오류나면 폭탄 (수건)돌리기 해보자 일단 기본형식이고 여기서 변형을 좀 들어가보자 throws filenot로 C한테 폭탄던져버리고 자신은 try catch를 지워도 된다 C도 check 한테 던지고 IOException이 filenotException의 조상이라 주석으로 생략해도 동작이 된다 ​ 에러뜨는것 보다 사용자에게 저런 메시지를 주는것이 경험이 완전 다르게 느껴진다 2023. 3. 13.
예외(2) -finally/throw 1)finally : 언제나 실행되는 로직 try { 예외의 발생이 예상되는 로직 } catch(예외클래스 인스턴스) { 예외 발생시 실행되는 로직 }finally { 예외여부와 관계없이 실행되는 로직 } **계속 finally가 실행된당 언제 finally 쓰는거야? ​ ex) 데이터베이스를 사용한다면 데이터베이스 서버에 접속해야 하는데 이때 데이터베이스 서버와 내가 작성한 에플리케이션은 서로 접속상태를 유지하게 됨. 데이터베이스를 제어하는 과정에서 예외가 발생해서 더 이상 후속 작업을 수행하는 것이 불가능한 경우가 있을 수 있는데 예외가 발생했다고 데이터베이스 접속을 끊지 않으면 데이터베이스와 연결 상태를 유지하게 되고 as a result, 데이터베이스는 더 이상 접속을 수용할 수 없는 상태에 빠질.. 2023. 3. 13.
예외(1)/try catch + try with resource/ e.getMessage() /e.toString()/e.printStackTrace / 1)예외: 오류를 처리하는 것 계산하나마나라 의미없다~~ 오류다!! 2)try~catch 예외를 처리하기 위한 문법적예외 ** try { 예외의 발생이 예상되는 로직 } catch(예외클래스 인스턴스) { 예외 발생시 실행되는 로직 } ** try {오류가 발생할 것 같은 부분을 } ​사이에 위치시키고 catch(Exception) { 에러 발생하면 try중지되고 catch로 이동} exception: catch 구문 호출하고 에러를 담고 있는 객체를 매개변수로 전달 -> 타입은 exception get message라는 메소드가 포함됨 -->에러가 발생한 이유가 리턴된다 (Exception)의미 java 7부터 close부분을 자동으로 실행시켜주는 try with resource구문이 추가되었다 자바의.. 2023. 3. 13.