전체 글 (119) 썸네일형 리스트형 [Java] Custom Exception과 Chained Exception 사용자정의 예외 (Custom Exception)사용자정의 예외 작성기존의 정의된 예외 클래스 외에 필요에 따라 프로그래머가 새로운 예외 클래스를 정의할 수 있다. 보통 Exception 클래스 또는 RutimeException 클래스로부터 상속받아 클래스를 만든다. 그러나 필요에 따라 알맞은 예외 클래스를 선택하여 상속하면된다. 다만, 가능하면 새로운 예외 클래스를 만들기 보다 기존의 예외 클래스를 활용하는 것이 좋다. Excetion 클래스로부터 상속받아서 MyException을 구현하였다. 상위 클래스의 생성자를 사용하여 사용자정의 예외(custom exception) 클래스에 메세지를 저장할수 있으며, 필요하다면 멤버 변수나 메서드를 추가하여 더 기능을 업그레이드 시킬수 있다.public cla.. [Java] Exception (re)throwing과 Method throws Declaration 예외 던지기 (Exception Throwing)키워드 throw을 사용하여 프로그래머가 고의로 예외를 발생 시킨 후에 던질수 있다.public class Throw { public static void main(String[] args) { try { Exception e = new Exception("고의로 발생시킨 예외"); // 문자열을 Exception 인스턴스의 message에 저장 throw e; } catch (Exception e) { System.out.println("Error message: " + e.getMessage()); e.printStac.. [Java] 예외 처리 (Exception Handling) 예외 처리 유무에 따른 프로그램 실행 상태프로그램에서 실행 도중 발생하는 예외는 프로그래머가 사전에 처리해주어야한다. 예외 처리(exception handling)란, 프로그램 실행 시 발생할 수 있는 예기치 못한 예외의 발생에 대비한 코드를 작성하는 것이다. 이를 통해 예외 발생으로 인하여 프로그램의 비정상 종료를 막고 정상적인 실행상태를 유지 할 수 있다. 발생한 예외(exception)를 처리하지 못하면 비정상적으로 종료되고, 처리하지 못한 예외(uncaught exception)은 JVM의 예외처리기(UncaughtExceptionHandler)가 받아서 예외의 원인을 화면에 출력한다.try-catch문으로 예외 처리try-catch문의 예외 처리 방식예외를 처리하기 위해서 try-catch문을 .. [Java] 프로그램의 에러 (Exception, Error 클래스) 프로그램의 에러란?프로그램 실행 중에 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우가 있다. 이러한 결과를 초래하는 원인을 프로그램 에러라고 한다.에러의 종류에러의 발생 시점에 따라 컴파일 에러, 런타임 에러로 나뉜다. 컴파일 에러는 컴파일 타임에 소스코드에 오타나 잘못된 구문, 자료형 체크 등의 기본적인 검사 수행시 오류가 발견되어서 발생되는 에러이다. 컴파일 에러가 발생되지 않으면, 소스코드는 클래스 파일로 변환되어 실행할 수 있는 파일이 된다. 런타임 에러는 프로그램 실행 중에 동작을 멈춘 상태로 지속된다던가 프로그램이 종료되는 경우등이 있다. 런타임 에러는 실행 중에 모든 경우의 수를 다 파악해야지 대비가 가능하다. 이외에도 컴파일과 실행도 잘되지만 의도한 것과 다르게 동작하는 것.. [Java] DI(Dependency Injection)와 IoC(Inversion of Control) 의존성 주입(Dependency Injection) 및 IoC, DIP, Factory 패턴을 설명하기 위해서, Oauth를 사용한 애플, 구글, 페이스북 로그인 구현시에 필요한 인증(Authentication)을 예시로 들것이다.객체의 내부에서 의존성 주입예를들어, 애플 로그인을 구현한다고 가정한다면 로그인을 수행하는 클래스를 LoginService정의하고, 로그인을 수행하기 위해서 애플 유저 인증을 수행하는 클래스 AppleAuthenticator를 정의하였다.class LoginService { private Applethenticator appleAuthenticator; public LoginService() { // LoginService 클래스의 내부에서 App.. [Java] Inner Class (내부 클래스) 내부 클래스란?내부 클래스는 클래스 내부에 선언된다는 점을 제외하고는 일반적인 클래스와 다르지 않다. 내부 클래스는 사용 빈도가 높지 않아서 내부 클래스의 기본 원리와 특징을 이해하는 정도면 충분할 것이다. 두 클래스가 서로 긴밀한 관계이기 때문에, 클래스 내부에 다른 클래스를 선언한다. 내부에 선언된 클래스를 Inner class라고 하고 이 클래스를 감싼 클래스를 Outer class라한다.class Outer { // ... class Inner { //... }} 이러한 구조는 Outer 클래스에서 Inner 클래스의 멤버에 쉽게 접근할 수 있게 된다. 그리고 외부에는 불필요한 클래스를 감추어 코드의 복잡성을 줄일수 있다. 즉, 내부 클래스는 외부 클래스를 제외하고 다.. [Java] 인터페이스의 본질과 이해 인터페이스란?인터페이스의 역할인터페이스의 인터페이스란 말 그대로 구현한 클래스와 다른 클래스 간의 인터페이스 역할을 한다. 두 클래스 사이에서 인터렉션을 할수 있도록 파이프라인 역할을 하는 것이다.인터페이스는 일종의 추상 클래스이다. 인터페이스는 추상 클래스처럼 추상 메서드는 갖지만, 추상 클래스와 다르게 body가 구현된 일반 메서드와 멤버 변수를 멤버로 가질 수 없다. 오직 추상 메서드와 상수만을 멤버로 가질 수 있어서, 추상 클래스보다 추상화 정도가 높다. 인터페이스 작성인터페이스 작성하는 것은 클래스를 작성하는 것과 같으며, 클래스와 마찬가지로 인터페이스의 접근제어자도 public 또는 default으로 지정할 수 있다. 인터페이스에 추상화된 메서드를 선언하고 클래스에서 구현하는 방식이다.inte.. [Java] 추상 클래스와 메서드 (Abstract) 추상 클래스클래스를 설계도에 비유한다면, 추상 클래스는 큰 틀에서의 규격만 잡아놓은 설계도에 가깝다. 이는 구현부가 작성되지 않은 메서드를 포함할수 있다는 의미이다. 추상 클래스는 상속을 통해서 하위 클래스에서 구현할 수 있다. 추상 클래스는 클래스로서의 역할을 다 못하지만, 새로운 클래스를 작성하는데 있어서 기저가 되는 설계도이다. 예를들면, 기능 차이에 따라 여러 모델의 냉장고가 있더라도 설계도는 거의 동일할 것이다. 이러한 공통적인 부분에 대한 설계도를 그려놓으면, 해당 설계도를 바탕으로 각 모델에 맞게 설계도를 완성 후에 실제 제품을 생상할 수 있다.추상 메서드메서드는 선언부와 구현부로 구현되있고, 추상 메서드는 선언부만 작성한다. 즉, 설계만 해놓고 실제 수행될 내용을 작성하지 않는다. 실제 수.. 이전 1 ··· 8 9 10 11 12 13 14 15 다음