Java/Exception(4)
-
[Exception] try-catch 예외처리하기
기존에 메인메소드에서도 try-catch로 예외처리를 안할경우, 잘못된 값이 입력됬을때 그즉시 종료됩니다. 또한 메인메소드에서도 마찬가지로 throws 예외를 다른곳으로 던져 null이 발생합니다. 이러한 경우 사용자는 어떠한 에러떄문에 프로그램이 종료됬는지 알수 없습니다. 다음은 try-catch 문을 통해 예외를 처리하는 방법입니다. 문제가 발생할곳을 try{} 전달될 문구를 catch(){} 에 적어주면 됩니다. 예외처리를 해줄경우 예외가 발생하더라도 다음 구문이 동작합니다. try-catch 가 여러가지일 경우는 try{} 안에 모든 예외가 발생되는 경우를 넣고 catch(){} 를 통해 전달메세지를 출력하면됩니다. 또한 마지막 catch(Exception e) 사용하여 모든값에 대한 예외문구를 ..
2023.03.12 -
[Exception] 예외처리 클래스 만들어보기
자바에서 제공하는 Exception 클래스들을 보면 무언가 구현해서 제공하기보다는 메시지 출력을 위한 클래스이며, JavaBean 빈껍데기만 제공되어있습니다. 같은 방법으로 직접 내가 Exception을 만들수도 있습니다. 1. 에러를 정의하고싶은 클래스를 하나 만들어준뒤 Exception클래스를 상속받습니다. (Exception_Knight) 2. 구현하고자 하는 메소드를 만들어줍니다. (가운데 클래스에 3가지 메소드 구현) 3. 메인메소드에 인트선스 생성 후 해당 메소드를 호출하여 에외값을 넣어줍니다. (메인메소드 옆에 throws) 4. 콘솔창에 내가 구현한 에러클래스가 발생합니다. (클래스로 만든 Exception_Knight) 추가로 구현한 메소드 확인을 해보면 throw new Exceptio..
2023.03.12 -
[Exception] 예외는 어디서 처리하는가?
이전 글에서는 예외의 필요성을 느꼇다면 지금은 예외를 어디서 처리해야되는지에 대해 알아보려고 합니다. 예외는 보통 입출력시 발생합니다. 특정범위내에서 에러가 발생했을당시 API가 그 에러를 스스로 판단하고 처리하기는 어렵습니다. 또한 메소드 처럼 return 개념으로 에러를 던져주는것또한 비효율입니다. (예외발생시 건너건너 전달보다는 한번에 던져주는 처리가 효율적) 과거의 프로그래밍들은 예외처리 식별자를 숫자로 나타내 표현했습니다. 1번은 권한없음예외, 2번은 널포인트 등등.. 하지만 자바에서는 예외처리에 대한 정확한 식별을 위해 숫자보다는 문자열로 에러를 표현합니다. 예외가 발생할수 있는곳은 try{} 로 스코프를 정해준뒤 catch{} 를 통해 예외발생에대한 조치를 취합니다. 치명적 오류일경우 정지시..
2023.03.12 -
[Exception] 자바의 예외란 무엇인가?
개발자가 코딩 후 컴파일 에러가 발생할경우 이건 치명적인오류라고 하지 않습니다. (처음 개발공부 당시 컴파일이 안되서 오히려 그부분이 답답하고 짜쯩났는데. 실행만 되면 좋아했던게 바보같은..) 오히려 정상컴파일 후 성적평균 프로그램을 만들었는데 점수가 다르게 나온다던지 금융앱에서 입출금을 했을경우 금액이 안맞는다던지..(생각만해도 식은땀..) 확실히 그런것보다는 컴파일 당시 오류가 발생해 리팩토링 하는게 훨씬 좋은 상황일겁니다. 그렇다면 자바에서 말하는 예외처리란 무엇일까요? 컴파일은 정상적으로 동작하지만, 사용자가 비정상적인 값을 입력할경우 예외처리를 발생시켜 다시 입력하도록 하는것입니다. 예를들어 성적프로그램이 있을경우 0~100점을 입력해야되지만 101점이상, 마이너스값을 넣는경우 예외를 발생시켜 ..
2023.03.12