Java 275

99. 예외를 직접 던져보자 – 잔고 부족 예외 처리 만들기

이번 글에서는 메서드에서 조건을 검사한 후 직접 예외를 던지는 방법을 실습합니다.계좌 클래스에서 출금 금액이 잔액보다 클 경우, 예외를 발생시켜 문제를 알려주는 구조를 구현해봅니다.이 예제는 예외가 단순히 발생하는 것이 아니라 개발자가 직접 던지고 처리하는 흐름을 잘 보여줍니다.📌 예제 코드package ch11.sec06;import javax.naming.InsufficientResourcesException;public class Account { private long balance; public Account() { } public long getBalnce() { return balance; } public void deposit(int money..

Java/자바 정리 2025.05.13

98. 예외를 던진다? throws로 책임을 미루는 방법

이번 글에서는 예외를 직접 처리하지 않고 호출한 곳으로 전달하는 방법인 throws 키워드를 배워봅니다.또한 main() 메서드에 throws Exception을 붙이면 어떤 효과가 있는지도 함께 살펴봅니다.📌 예제 코드public class ThrowsExample { public static void main(String[] args) { try { findClass("java.lang.String2"); // 존재하지 않는 클래스명 } catch (Exception e) { System.out.println("예외 처리 : " + e.toString()); } } // ClassNotFoundExcepti..

Java/자바 정리 2025.05.13

97. 예외가 여러 개여도 하나로 처리하자 – 멀티 캐치(Multi-Catch)

이번 강의에서는 하나의 try 블록에서 여러 종류의 예외가 발생할 수 있을 때,이들을 하나의 catch 블록에서 동시에 처리하는 방법을 실습해봅니다.특히 NullPointerException과 NumberFormatException을 함께 묶어 처리하는 구조를 배웁니다.📌 예제 코드public class ExceptionHandlingExample { public static void main(String[] args) { String[] arrays = { "100", "1oo", null, "200" }; for (int i = 0; i 💻 실행 결과array [0] : 100데이터 문제 발견 : For input string: "1oo"데이터 문제 발견 : Cann..

Java/자바 정리 2025.05.13

96. 예외 처리에도 순서가 있다! – Exception은 맨 마지막에 써야 해요

이번 글에서는 예외 처리를 할 때 catch 블록의 순서가 왜 중요한지를 확인해봅니다.특히, Exception처럼 상위 예외 클래스가 먼저 오면 어떤 문제가 발생하는지를 다루며,실행 중 발생할 수 있는 두 가지 예외(ArrayIndexOutOfBoundsException, NumberFormatException)를상위 타입인 Exception으로 하나로 묶어 처리하는 예제를 실습해봅니다.📌 예제 코드public class ExceptionHandlingExample { public static void main(String[] args) { String[] arrays = { "100", "1oo" }; // 두 번째 값은 숫자로 변환 불가 for (int i = 0; i..

Java/자바 정리 2025.05.13

95. 배열 범위도, 숫자 형식도 조심하자 – 예외 두 개를 잡는 try-catch

이번 글에는 배열의 범위를 벗어난 접근과 문자열을 숫자로 바꾸는 과정에서의 오류를 동시에 다루는 예제를 실습해봅니다.두 가지 서로 다른 예외를 catch 블록을 나눠서 처리하면, 구체적으로 어떤 문제가 발생했는지 알 수 있습니다.📌 예제 코드public class ExceptionHandlingExample { public static void main(String[] args) { String[] arrays = { "100", "1oo" }; // 두 번째 문자열은 알파벳 'o'가 포함되어 있음 for (int i = 0; i 💻 실행 결과array [0] : 100숫자가 아님 : For input string: "1oo"배열 인덱스 초과 : Index 2 out o..

Java/자바 정리 2025.05.13

94. 클래스를 찾을 수 없다면? ClassNotFoundException을 잡아보자

이번 글에서는 Class.forName() 메서드를 사용해클래스의 존재 여부를 동적으로 확인하는 방법과,존재하지 않는 클래스를 찾으려 할 때 발생하는 예외인ClassNotFoundException을 처리하는 방법을 배워봅니다.📌 예제 코드public class ExceptionHandlingExample { public static void main(String[] args) { try { Class.forName("java.lang.String"); System.out.println("java.lang.String 클래스가 존재합니다."); System.out.println(); Class.forName(..

Java/자바 정리 2025.05.13

93. try-catch로 예외를 안전하게 처리해보자

이전 글에서는 null을 참조하는 코드에서 NullPointerException이 발생해 프로그램이 중단되는 현상을 확인했어요.이번에는 같은 상황에서 try-catch 블록을 사용해 예외를 안전하게 처리하고, 프로그램이 계속 실행될 수 있도록 만드는 코드를 실습해봅니다.📌 예제 코드public class ExceptionHandlingExample1 { public static void printLength(String data) { try { int re = data.length(); System.out.println("문자 수 : " + re); } catch (Exception e) { System.out.p..

Java/자바 정리 2025.05.13

92. 예외 처리의 시작 – NullPointerException은 왜 터질까?

이번 글에는 예외(Exception)의 개념을 처음 접하며,가장 흔하게 발생하는 예외 중 하나인 NullPointerException을 직접 경험해봅니다.문자열의 길이를 출력하는 간단한 메서드를 만들고,그 안에서 null 값을 전달했을 때 어떤 일이 일어나는지 확인해보겠습니다.📌 예제 코드public class ExceptionHandlingExample1 { public static void printLength(String data) { int re = data.length(); System.out.println("문자 수 : " + re); } public static void main(String[] args) { System.out.prin..

Java/자바 정리 2025.05.13

[ 19일차 81~90 ] 수업 정리 - 자바

✅ 1. 중첩 클래스 종류 및 특징유형설명선언 위치접근인스턴스 멤버 클래스외부 클래스의 인스턴스 멤버로 선언클래스 내부외부 클래스 인스턴스 필요정적 멤버 클래스 (static)정적 멤버로 선언됨클래스 내부외부 클래스 인스턴스 없이 접근로컬 클래스생성자나 메서드 내부에 정의메서드/생성자 내부해당 블록 내에서만 사용 가능익명 클래스클래스 선언 없이 즉석에서 구현인스턴스 생성과 동시에 구현일회용 용도로 사용✅ 2. 내부 클래스 주요 예시🧩 인스턴스 멤버 클래스A.B b = a.new B();🧩 정적 멤버 클래스 A.B b = new A.B(); // 외부 클래스 인스턴스 없이 사용 가능🧩 로컬 클래스 void method() { class B { ... } B b = new B();}🧩 t..

국비 2025.05.12

91. 람다식으로 두 동작 처리하기 – 인터페이스를 분리해서 해결하자!

이전 글에서는 람다식이 추상 메서드가 1개인 인터페이스에서만 가능하다는 점을 배웠습니다.그렇다면 켜기/끄기 같은 2가지 동작을 동시에 람다식으로 표현하고 싶을 때는 어떻게 해야 할까요?이번 글에서는 기능을 역할별로 나누어 인터페이스를 분리하고,각각을 람다식으로 처리하는 방식으로 문제를 해결해봅니다.📦 동작별 인터페이스 정의package ch09.sec07.test;public interface PowerOn { void run(); // 켜기 동작}package ch09.sec07.test;public interface PowerOff { void run(); // 끄기 동작}✔ 두 개의 동작을 각각 함수형 인터페이스로 분리!📦 람다식 적용 클래스 (RemoteControl.java)package..

Java/자바 정리 2025.05.12
반응형