π μ°Έκ³ ν μ±
- κΈ°λ³Έμ μΈ κ°λ μ μ 리νκ³ μΆκ°μ μΌλ‘ κΆκΈν κ²λ€μ μ 리νμ΅λλ€ -
π₯ π₯ π₯
βοΈ μμΈμ²λ¦¬_ 467p
• try
: μμΈκ° λ°μν μ μλ μ½λκ° ν¬ν¨λμ΄μλ€.
• catch
: μμΈκ° λ°μνμ λ μ²λ¦¬ν μ½λκ° ν¬ν¨λλ€.
• finally
: μμΈκ° λ°μνλ , λ°μνμ§ μλ νμ μ€νλλ λΈλ‘μΌλ‘, μΌλ°μ μΌλ‘ 리μμ€ ν΄μ λ try{ }, catch{ }μ κ³΅ν΅ κΈ°λ₯ μ½λκ° ν¬ν¨λμ΄μλ€.
try {
int a = 10 / 0;
}
catch (Exception e) {
System.out.println("μμΈ λ°μ!");
}
catch (ArithmeticException e) {
System.out.println("0μΌλ‘ λλ μ μμ΅λλ€!");
}
finally {
System.out.println("νλ‘κ·Έλ¨ μ’
λ₯");
}
tryλ μμΈκ° λ°μν μ μλ μ½λλ₯Ό λ΄κ³ μλ€. ν΄λΉ μ½λμμ ArithmeticExceptionμ΄λ μμΈλ₯Ό λ°μμν¨λ€. catchλ μμΈλ₯Ό μ²λ¦¬νλ λ°©μμ λνλ΄λλ° μ¬λ¬ κ°λ₯Ό μ μν μ μλ€. tryμμ μμΈκ° λ°μνλ©΄ κ·Έμ λ§λ μ²λ¦¬λ°©λ²μ μ°ΎκΈ° μν΄ μ²«λ²μ§Έ catchλΆν° finallyλ₯Ό ν₯ν΄ λ΄λ €κ°λ€.
κ·Έλ°λ° μμ μ½λλ μμΈλ₯Ό μ²λ¦¬νλ κ³Όμ μμ μ€λ₯κ° λ°μνλ€. λͺ¨λ μμΈλ Exception ν΄λμ€μ νμ ν΄λμ€λ‘ μ΄λ€ μμΈκ° λ°μνλ 첫λ²μ§Έ catch λΈλ‘λ§ μ€νλλ―λ‘ λλ²μ§Έ catch λΈλ‘μ λλ¬ν μ μλ μ½λκ° λλ€. κ·Έλμ unreachable code μ€λ₯κ° λ°μνλ€.
try {
int a = 10 / 0;
}
catch (ArithmeticException e) {
System.out.println("0μΌλ‘ λλ μ μμ΅λλ€!");
}
catch (Exception e) {
System.out.println("μμΈ λ°μ!");
}
finally {
System.out.println("νλ‘κ·Έλ¨ μ’
λ₯");
}
μμλ₯Ό λ°κΏμ£Όλ©΄ μ€λ₯κ° ν΄κ²°λμ΄ μμΈ μ²λ¦¬κ° κ°λ₯ν΄μ§λ€.
• λ€μ€ μμΈ μ²λ¦¬
public class TryCatchPratice1 {
public static void main(String[] args) {
try {
System.out.println(10 / 0);
} catch (ArithmeticException e) {
System.out.println("0μΌλ‘ λλ μ μμ΅λλ€.");
} finally {
System.out.println("νλ‘κ·Έλ¨μ μ’
λ₯ν©λλ€.");
}
try {
int[] arr = new int[3];
System.out.println(arr[5]);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("λ°°μ΄ μΈλ±μ€ λ²μλ₯Ό λ²μ΄λ¬μ΅λλ€.");
} finally {
System.out.println("νλ‘κ·Έλ¨μ μ’
λ₯ν©λλ€.");
}
}
}
첫λ²μ§Έ tryμμλ 0μΌλ‘ λλλ κ²μ΄ λΆκ°λ₯νμ¬ ArithmeticException μμΈ μ²λ¦¬λ°©λ²μ λλ€. λλ²μ§Έ tryμμλ λ°°μ΄μ ν¬κΈ°κ° 3μμλ κ·Έ μ΄μμ μλ λ°°μ΄μ μΆλ ₯μν€λ©° λ°μν μΈλ±μ€ λ²μ μ€λ₯ μμΈλ₯Ό μ²λ¦¬νλ€. finallyμ κ²½μ° μ€λ³΅λμ΄ μ½λλ₯Ό μμ±νλ€.
public class TryCatchPratice02 {
public static void main(String[] args) {
try {
int[] arr = new int[3];
System.out.println(10 / 0);
System.out.println(arr[5]);
} catch (ArithmeticException e) {
System.out.println("0μΌλ‘ λλ μ μμ΅λλ€.");
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("λ°°μ΄ μΈλ±μ€ λ²μλ₯Ό λ²μ΄λ¬μ΅λλ€.");
} finally {
System.out.println("νλ‘κ·Έλ¨μ μ’
λ₯ν©λλ€.");
}
}
}
νλμ try λΈλ‘ μμ μ¬λ¬ μμΈλ₯Ό λ£κ³ catchλ‘ μμΈμ²λ¦¬λ₯Ό νλ€. μ΄λ κ² νλ©΄ ν¨μ¬ κ°κ²°ν μ½λκ° μμ±λλ€. try λΈλ‘μ μλ μμΈ μ½λλ catch λΈλ‘μ μμμ μ°κ΄μμ΄ μμμ μμ±ν΄μ£Όλ©΄ λλ€. tryμ catchμ μ€λ³΅λ μ½λκ° μμ κ²½μ°, finallyμ μ μ΄ μ€λ³΅μ νΌν μ μλ€.
• λ€μ€ μμΈλ₯Ό ν λΈλ‘μμ μ²λ¦¬νλ λ°©λ²
public class TryCatchPratice02 {
public static void main(String[] args) {
try {
int[] arr = new int[3];
System.out.println(10 / 0);
System.out.println(arr[5]);
} catch (ArithmeticException | ArrayIndexOutOfBoundsException e) {
System.out.println("μμΈκ° λ°μνμ΅λλ€.");
} finally {
System.out.println("νλ‘κ·Έλ¨μ μ’
λ₯ν©λλ€.");
}
}
}
νλμ catch λΈλ‘μμ λ κ°μ μμΈλ₯Ό μ²λ¦¬ν μ μλ€. κ·Έλ΄ κ²½μ° |(OR)μ μ¬μ©νμ¬ λνλ΄λ©΄ λλ€.
βοΈ λ¦¬μμ€ ν΄μ _ 477p
• 리μμ€ ν΄μ
: λμ΄μ μ¬μ©νμ§ μλ μμμ λ°λ©νλ κ²μ μλ―Ένλ€.
• InputStreamReaderλ₯Ό μ΄μ©νμ¬ λ¦¬μμ€ μλ ν΄μ
try (InputStreamReader isr1 = new InputStreamReader (System.in);) {
char input = (char) isr1.read();
System.out.println("μ
λ ₯ κΈμ = " + input);
} catch (IOException e) {
e.printStackTrace();
}
try (InputStreamReader isr2 = new InputStreamReader (System.in);) {
char input = (char) isr2.read();
System.out.println("μ
λ ₯ κΈμ = " + input);
} catch (IOException e) {
e.printStackTrace();
}
InputStreamReaderμλ AutoCloseableμ ꡬννκ³ μλ€. tryμ κ΄νΈ μμ μ μΈλ κ°μ²΄κ° μμΈ μ²λ¦¬ ꡬ문μ μ€νμ΄ λλλ©΄ μλμΌλ‘ close( ) νΈμΆν΄ 리μμ€λ₯Ό ν΄μ νλ€.
κ·Έλ°λ° μμ μ½λλ 첫λ²μ§Έ try λΈλ‘μμ μμΈμ²λ¦¬λ₯Ό λ§μΉκ³ 리μμ€λ₯Ό ν΄μ νλ€. κ·Έλ¬λ©΄ κ·Έ λ€μ try λΈλ‘μ μ΄λ»κ² μ§νλλκ±ΈκΉ. System.inμ μ½μ μ λ ₯μ μ²λ¦¬νλ 리μμ€λ‘ μλ° κ°μ λ¨Έμ μ΄ λ¨ νλμ κ°μ²΄λ₯Ό μμ±ν΄ μ 곡νκΈ° λλ¬Έμ μ΄λ₯Ό λ°λ©νλ©΄ λμ΄μ μ½μμ μ λ ₯ν μ μκ²λλ€. κ·Έλ¬λ―λ‘ μ²«λ²μ§Έ try λΈλ‘μμ 리μμ€λ₯Ό λ°λ©ν΄μ λ€μ try λΈλ‘μ μ¬μ©ν μ μκ²λλ€.
• μ§μ closeλ₯Ό μ€μ νμ¬ λ¦¬μμ€ μλ ν΄μ
A a1 = null;
try {
a1 = new A("νΉμ νμΌ")
}
catch (Exception e) {
System.out.println("μμΈ μ²λ¦¬");
}
finally {
if(a1.resource!=null) {
try{
a1.close();
} catch (Exception e) {
}
}
}
finallyμ μ§μ close( )λ₯Ό μ μνλ€. finallyμ μ μνμ§ μλλ€λ©΄, ν΄λμ€ Aμ AutoCloseable μΈν°νμ΄μ€λ₯Ό ꡬννλ€. AutoCloseable λ΄λΆμ close( ) λ©μλλ₯Ό ν¬ν¨νκ³ μκΈ°μ finallyμ μ§μ μ μνμ§ μμλ, 리μμ€λ₯Ό μμμ ν΄μ ν κ²μ΄λ€.
βοΈ μμΈμ κ°_ 485p
• μμΈ μ κ°
: μμΈ μ²λ¦¬μ μ무λ₯Ό νΈμΆν λ©μλκ° μμΈλ₯Ό κ°κ² λλ©°, μμμ λ©μλλ μμ μ νΈμΆν μ§μ μΌλ‘ μμΈλ₯Ό μ κ°ν μ μλ€.
• throws
: μμΈ μ κ° λ¬Έλ²μ΄λ€.
public static void readFile() throws IOException {
BufferedReader reader = new BufferedReader(new FileReader("example.txt"));
String line = reader.readLine();
System.out.println("μ½μ λ΄μ©: " + line);
reader.close();
}
public static void main(String[] args) {
try {
readFile();
} catch (IOException e) {
System.out.println("νμΌμ μ½λ μ€ μ€λ₯ λ°μ: " + e.getMessage());
}
}
readFile λ©μλμμ λ°μνλ μμΈλ₯Ό IOExceptionμΌλ‘ μ κ°λμμΌλ©° λ©μλ λ΄λΆμμ try-catch ꡬ문μΌλ‘ μ²λ¦¬νμ§ μμλ€. λμ , main λ©μλμμ readFile( )μ νΈμΆν λ try-catchλ‘ μμΈλ₯Ό μ²λ¦¬νλ€. μμΈ μ κ°λ μμ μ½λμ²λΌ μμΈλ₯Ό μ μ°νκ² λΆλ¦¬ μμΌ λμ€μ μ²λ¦¬νλλ‘ ν΄μ€λ€.
μμΈλ₯Ό μ²λ¦¬νμ§ μκ³ κ³μ μ κ°νκ² λλ©΄ μλ° κ°μ λ¨Έμ μ΄ μ§μ μμΈλ₯Ό μ²λ¦¬νκ² λλ€. μλ° κ°μ λ¨Έμ μ μμΈ μ²λ¦¬ λ°©λ²μ μ°λ¦¬κ° μ μλ λ°©λ²μ΄λ€. λ°μν μμΈμ μ 보λ₯Ό νλ©΄μ μΆλ ₯ν λ€ νλ‘κ·Έλ¨μ κ°μ μ’ λ£νλ κ²μ΄λ€.
μμΈ μ κ°λ λ€μ€μΌλ‘ μ²λ¦¬ κ°λ₯νλ€. throws μμΈ ν΄λμ€ A, μμΈ ν΄λμ€ B... λ‘ ν λ²μ μ κ°νλ©΄ λλ€.
βοΈ μ¬μ©μ μ μ μμΈ ν΄λμ€_ 492p
• μ¬μ©μ μ μ μμΈ ν΄λμ€
: μλ°μ μ‘΄μ¬ νμ§ μλ μμΈλ₯Ό μ§μ μμ±νλ€.
• μ¬μ©μ μ μ μμΈ ν΄λμ€ μμ±
public class MyException extends Exception {
public MyException(String message) {
super(message);
}
}
μμ±μμμ messageλ₯Ό λ°μ, μμΈ λ©μμ§λ₯Ό λΆλͺ¨μκ² μ λ¬νλ€.
• μ¬μ©μ μ μ μμΈ κ°μ²΄ μμ±κ³Ό μμΈ κ°μ²΄ λμ§κΈ°
throw new MyException("λμ΄κ° λ무 μ΄λ €μ κ°μ
ν μ μμ΅λλ€.");
• μ¬μ©μ μ μ μμΈ κ°μ²΄ μμ±κ³Ό μμΈ κ°μ²΄ λμ§κΈ°
public class Pratice01 {
public static void checkAge(int age) throws MyException {
if (age < 18) {
throw new MyException("λμ΄κ° λ무 μ΄λ €μ κ°μ
ν μ μμ΅λλ€.");
} else {
System.out.println("κ°μ
μ΄ κ°λ₯ν©λλ€.");
}
}
public static void main(String[] args) {
try {
checkAge(15);
} catch (MyException e) {
System.out.println("μμΈ λ°μ: " + e.getMessage());
}
}
}
18μ΄ μ΄νλ©΄ MyException μμΈκ° λ°μνλλ‘ λ§λ€μλ€. try λΈλ‘μμ 15λ₯Ό μΈμλ‘ λ³΄λκ³ μμΈ MyExceptionμ΄ λ°μν΄ μμΈλ₯Ό λμ‘λ€. catch ꡬ문μμ λ°μ μμΈ λ°μ 문ꡬλ₯Ό μΆλ ₯νλ€.
βοΈ μμΈ ν΄λμ€μ λ©μλ_ 497p
• getMassage( ) λ©μλ
: μμΈκ° λ°μνμ λ μμ±μλ‘ λκΈ΄ λ©μμ§λ₯Ό λ¬Έμμ΄ ννλ‘ λ¦¬ν΄νλ λ©μλ
throw new MyException("λμ΄κ° λ무 μ΄λ €μ κ°μ
ν μ μμ΅λλ€.");
System.out.println("μμΈ λ°μ: " + e.getMessage());
λμ΄κ° λ무 μ΄λ €μ μμΈκ° λ°μνλ€. μμΈλ "λμ΄κ° λ무 μ΄λ €μ κ°μ ν μ μμ΅λλ€."λΌλ λ©μμ§λ₯Ό ν¬ν¨νκ³ μλ€. ν΄λΉ λ©μμ§λ μμΈ κ°μ²΄λ₯Ό μμ±ν λ μ λ ₯λ§€κ°λ³μλ‘ μ λ¬λλ€. μ΄ λ¬Έμμ΄μ getMassage( ) λ©μλλ₯Ό ν΅ν΄ 리ν΄νλ€.
• printStackTrace( ) λ©μλ
: μμΈ λ°μμ΄ μ λ¬λλ κ²½λ‘λ‘, μμΈ λ°μ μ κ°λ°μκ° λλ²κΉ ν μ μλλ‘ μμΈμ μμΈμ μμΈν μΆλ ₯νλ€.
try (InputStreamReader isr1 = new InputStreamReader(System.in)) {
char input = (char) isr1.read();
System.out.println("μ
λ ₯ κΈμ = " + input);
} catch (IOException e) {
e.printStackTrace();
}
μ½μμ μμΈκ° μ΄λμμ μ κ°λμλμ§ λ± μΆμ μ 보λ₯Ό μΆλ ₯νλ€.
'π Java > μλ°μμ μ 볡' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] μ°λ λ λκΈ°ν, μ°λ λ μν (0) | 2025.05.26 |
---|---|
[Java] μ°λ λ, μ°λ λμ μμ±, λ°λͺ¬μ°λ λ (0) | 2025.05.20 |
[Java] μΌλ° μμΈμ μ€ν μμΈ (0) | 2025.05.08 |
[Java] μ΅λͺ μ΄λ ν΄λμ€ (1) | 2025.05.02 |
[Java] μ΄λ ν΄λμ€ (0) | 2025.04.29 |