JAVA (158) 썸네일형 리스트형 Unchecked Exception /## 2. Unchecked 예외(또는 런타임 예외): // Java에서 컴파일러가 예외 처리를 강제하지 않는 예외를 가리키는 용어 // 이러한 예외는 주로 런타임에 발생하며, 예외 처리를 명시적으로 하지 않아도 됨 // 프로그래머가 예외 처리를 하지 않아도 컴파일 오류가 발생하지 않는다! # 특징 // RuntimeException 클래스와 그 하위 예외 클래스들 // 코드에서 Unchecked 예외를 발생시킬 때 throw 키워드를 사용 // Unchecked 예외는 주로 프로그램 오류나 예측할 수 없는 상황에서 발생 // 예외 처리를 무시하면 런타임에 프로그램이 중단될 수 있음 // 예시) // # RuntimeException을 넣었어 -> Unchecked 예외 // main 메서드에서 min.. Custom Exception // Custom Exception // - 커스텀 예외 클래스를 만들면 특정 예외 상황을 더 명확하게 표현할 수 있고, // - 프로그램 로직에서 예외 처리를 개선할 수 있습니다. 이를 통해 예외 처리의 가독성과 디버깅이 향상됩니다. // 생성 방법 // 1. 예외 클래스 작성: 커스텀 예외 클래스를 작성합니다. // 이 클래스는 Exception 클래스를 상속하여 일반적인 예외 클래스의 특성을 물려받을 수 있습니다. class CustomException extends Exception { // 생성자, 필드, 메서드 등을 정의할 수 있음 int a; // 2. 생성자 정의: 커스텀 예외 클래스에 생성자를 추가하여 예외 객체를 초기화합니다. // 생성자 내에서는 super()를 사용하여 상위 클래스의.. Checked exception 1. checked exception ---> Exception 하위티어 // 컴파일러가 예외 처리를 강제하는 예외 // 코드에서 명시적으로 예외 처리를 해야 하며, 그렇지 않으면 컴파일 오류가 발생함 // Exception 클래스와 그 하위 클래스 중에서 RuntimeException을 상속하지 않는 예외 클래스들 # Checked 예외를 처리하는 방법: // 1) try-catch 블록 사용: // Checked 예외를 발생시킬 수 있는 코드를 try 블록 내에 넣고, 해당 예외를 처리하는 코드를 catch 블록에 작성 // 2) throws 예외 던지기: // Checked 예외를 처리하지 않고 현재 메서드에서 던지기 위해 메서드 선언에 throws를 사용 // 이 경우, 메서드를 호출한 상위 메서.. Try Catch // exception 처리코드 System.out.println("1"); try { System.out.println("2"); // 상황1. byZero int a = 10/0; // 상황2. null String str = null; str.trim(); System.out.println("3"); }catch(Exception e) { System.out.println("예외 발생"); e.printStackTrace(); // 얘가있어야 java.lang.ArithmeticException: by zero 출력됨 // --> 첫 exception위치부터 알려준당 }finally { System.out.println("finally : 여기는 무조건 시행되는 코드"); // 코드 흐름 무시하고 .. Exception Basic System.out.println("안녕"); // 상황1. 50을 사용자가 입력한값으로 나누려했으나, 사용자가 0을 넣어버렸다고 가정 //int inputValue = 0; //int a = 50/inputValue; //System.out.println(a); // --> 출력을하면 안녕, exception내용만 출력O, 반가워는 출력 X // --> 프로그램이 종료된거임. (사용자는 0넣으면 화면이 꺼진거랑 비슷한 느낌 ㅋㅋ) System.out.println("반가워"); // 상황2. null관련 String arr = null; int inputValue = 0; arr.charAt(inputValue); Set summary Set set = new TreeSet();// 대표적인 Set. Set set2 = new HashSet();// 알아두기 *** 중요도 순으로 적어보장 // 1.add set.add("안녕1"); set.add("안녕2"); set.add("안녕3"); set.add("안녕4"); set.add("안녕1"); // ----> 동일한 값은 추가가 안된다! (보이는게 add하는것처럼 보여도 내부에서는 X - 출력도 X) // 2. contains set.contains("안녕4");// 핵심 API for(String e : set) { System.out.println(e); } // =========== 밑부턴 그냥뭐.. =========== // 3. size set.size(); // 4. rem.. Map summary Map map = new HashMap(); map.put("name", "한조"); map.put("age", 30); map.put("score", 99); map.get("name"); String name = (String)map.get("name"); // Object로 반환하는 map의 요소를 뽑을 때는 타입캐스팅을 해줘야한당 // --> map.get("name")은 Object를 반환하므로 이를 명시적으로 String으로 캐스팅하여 사용해야함 // --> 애초에 String으로 하면 나는 편하겠지만, 나중에 사용자들이 불편쓰.. System.out.println(name); List summary // List사용시 주의사항 : 선언이 분명해야한다!! // ArrayList list = new ArrayList(); // --> 어떤 list든 인터페이스 List를 상속받고있으므로 밑에처럼 써도된다! List list = new ArrayList(); List list2 = new LinkedList(); // List list3 = new Stack(); --> 되긴하는데 하지마!!! List list4 = new Vector(); // 이제 변수를 선언할때는 인터페이스를 사용해서 추상화를 높이자!! // --> 뒤만 변경해주면 주르륵 쓸 수 있다구 // List, Map, Set... // 단점 : ArrayList에만 존재하는 특정 변수를 사용하고싶으면 위에처럼 써야한다..! // *** 중.. 이전 1 ··· 4 5 6 7 8 9 10 ··· 20 다음