본문 바로가기

프로그래밍 언어27

[java] 예외처리2 예외처리 미루기 throws를 사용하여 예외 처리를 이룬다. try블록을 구현하지 않는 대신 메서드 선언부에 throws를 추가하면 해당 헤서드를 호출한 곳에서 예외를 처리한다. main에서 throws를 사용하면 가상머신에서 처리된다. 다중 예외 처리 가장 최상위 클래스인 Exception 클래스는 가장 마지막 블록에 위치해야 한다. 그렇지 않으면 Exception 아래에 위치한 다른 클래스들이 전부 업캐스팅되어 실행되지 않음! /** * @topic throws 구현 * @description throws를 통해 예외처리를 지연시킨다. 해당 함수가 아닌 다른 함수에서 예외처리를 실행함 */ public class ThrowsException { public Class loadClass(String f.. 2021. 4. 5.
[java] 예외 처리 오류(Error) 오류엔 두 가지 종류가 존재한다. 1. 컴파일 오류: 코드 작성 중 발생하는 문법적 오류. 요즘은 컴파일러가 잘되어있어서 컴파일 단계에서 모두 잡아준다. 2. 실행 오류: 설계 로직이 잘못되어 생기는 오류. 런타임에러(프로그램 중지)가 있다. 예외처리를 통해 프로그램의 비정상 종료를 막고 로그를 남기는 것을 목표로 한다. 오류와 예외 시스템 오류 가상머신에서 발생. 프로그래머가 처리할 수 없다. 동적 메모리를 다 사용한 경우나 stack over flow 같은 오류가 여기 해당한다. 예외 프로그램에서 제어할 수 있는 오류. 읽어내려는 파일이 없다/소켓 연결 오류 등 예외 클래스 모든 예외 클래스의 최상위 클래스는 Exception클래스이다. 예외 처리 try-catch try { 예외가.. 2021. 4. 5.
[java] Class 클래스, 자바 리플렉션 Class 클래스 자바의 모든 클래스와 인터페이스는 컴파일 후 class 파일로 생성된다. class파일에는 멤버 변수, 생성자 등 객체 정보가 포함되어 있다. Class 클래스는 컴파일된 class파일에서 객체 정보를 가져올 수 있다. 현재 사용하는 클래스에 어떤 메서드가 있는지, 생성자가 뭔지 확인가능하다는 말 Class클래스 가져오기 3가지 방법이 존재한다. public static void main(String[] args) { // 1. Class c1 = String.class; // 2. String str = new String(); Class c2 = str.getClass(); // 3. Class c3 = Class.forName("java.lang.String"); } // Stri.. 2021. 3. 18.
[java] String, Wrapper 클래스 String 클래스 String 클래스를 선언하는 방법엔 2가지가 있다. 1 String str1 = new String("abc"); //new로 선언 2 String str2 = "abc"; //리터럴 선언 1번 방법은 인스턴스로 생성된 String이고 2번 방법은 상수풀에 있는 문자열을 가리킨다. str1.equals(str2)를 하면 true이지만 str1 == str2를 하면 false가 나온다는 의미이다. 3 String str3 = "abc"; 하지만 str2 == str3는 true이다. str2와 str3는 상수풀에 있는 동일한 문자열을 가리키기 때문이다. public static void main(String[] args) { String s1 = new String("java"); S.. 2021. 3. 18.