전체 글

finally블럭 예외의 발생여부 상관없이 실행해야할 코드를 포함시킬 목적으로 사용된다. try-catch문의 끝에 선택적으로 덧 붙여 사용할 수 있다. try-catch-finally의 순서로 구성된다. try { //예외가 발생할 가능성이 있는 문장 } catch (발생할거같은 Exception클래스 e1(예외 인스턴스를 가르키는 참조변수){ //예외처리를 위한 문장 } finally { //예외의 발생여부에 관계없이 항상 수행되어야하는 문장들을 넣는다. //finally블럭은 try-catch문의 맨 마직막에 위치해야 한다. } 예외가 발생한 경우 ‘try → catch → finally’의 순으로 실행된다. 예외가 발생하지 않은 경우 ‘try → finally’의 순으로 실행된다. try { in..
예외 발생시키기 throw를 사용해서 프로그래머가 고의로 예외를 발생시킬 수 있다. 연산자 new를 이용해서 발생시키려는 예외 클래스의 객체를 만든 다음 Exception e = new Exception(”고의로 발생시킴”); 키워드 throw를 이용해서 예외를 발생시킨다. throw e; → catch문에서 throw new Exception(); 으로 한번에 던지기 try { Exception e = new Exception("고의로 발생시킴"); throw e; //throw new Exception(); } catch (Exception e) { e.printStackTrace(); System.out.println("에러 메시지 : "+e.getMessage()); } /* java.lang.E..
프로그램 에러 또는 오류 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우 발생시점에 따라 ‘컴파일 에러(compile-time error)’와 ‘런타임 에러(runtime error)’ 이 외에도 ‘논리적 에러(logical error)’ 컴파일 에러: 컴파일 시에 발생하는 에러 소스코드를 컴파일 하면 컴파일러가 소스코드(*.java)에 대해 오타나 잘못된 구문, 자료형 체크 등의 기본적인 검사를 수행하여 오류가 있는지 알려준다. 성공적으로 컴파일시 클래스 파일(*.class)이 생성된다. (생성된 클래스 파일 실행가능) 런타임 에러: 프로그램의 실행도중에 발생하는 에러 정상적으로 class파일이 생성되어도 컴파일러가 실행 도중에 발생할 수 있는 잠재적인 오류까지 검사하..
참조변수가 참조하고 있는 인스턴스 실제 타입을 알아보기 위해 사용 주로 조건문에 사용된다. instanceof의 왼쪽에는 참조변수 오른쪽에는 타입(클래스명)이 피연산자로 위치한다. 참조변수가 검사한 타입으로 형변환이 가능하면 결과는 boolean 값으로 true 아니면 false 값이 null인 참조변수는 false public static void main(String[] args) { System.out.println("hihi"); Car car = null; RedCar redCar = new RedCar(); car = redCar; //(Car)redCar 생략 if(car instanceof RedCar){ //1. 형변환이 가능한지 확인 RedCar redCar1 = (RedCar)car;..
내부 클래스 클래스 내에 선언된 클래스 → 두 클래스가 서로 긴밀한 관계에 있을 때 사용 내부 클래스 장점 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다. 코드의 복잡성을 줄일 수 있다.(캡슐화) 외부에는 불필요한 클래스를 감출 수 있기 때문에 class A { //독립적인 Class ... } class B { //독립적인 Class ... } class A { //외부 클래스 ... class B { //내부 클래스 ... } ... } 내부 클래스 B는 외부 클래스 A를 제외하고는 다른 클래스에서 잘 사용되지 않아야 된다. 내부클래스의 종류와 특징 변수의 선언과 동일하게 내부클래스도 선언 위치에 따라서 구분되어 진다. (내부 클래스는 변수를 선언하는 것과 같은 위치에 선언할 수 있다...
uhanuu
몸뚱아리부터 마음가짐까지