-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add: π° [Item 71] νμ μλ κ²μ¬ μμΈ μ¬μ©μ νΌνλΌ
- Loading branch information
1 parent
496d6a8
commit 903a59d
Showing
1 changed file
with
59 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
--- | ||
title: Item 71 - νμ μλ κ²μ¬ μμΈ μ¬μ©μ νΌνλΌ | ||
date: 2024-05-19 00:50:00 +0900 | ||
categories: [μ΄νν°λΈ μλ°, chapter10] | ||
tags: [μ΄νν°λΈ μλ°] | ||
--- | ||
|
||
κ²μ¬ μμΈλ₯Ό μ λλ‘ νμ©νλ©΄ νλ‘κ·Έλ¨μ μμ μ±κ³Ό μ§μ λμΌ μ μλ€. | ||
|
||
## **κ²μ¬ μμΈλ₯Ό κ³Όνκ² μ¬μ©νλ©΄ π€** | ||
|
||
- κ²μ¬ μμΈλ νΈμΆμκ° μ²λ¦¬ν΄μΌ νλ κ°μ μ±μ μ§λκΈ° λλ¬Έμ λΆλ΄μ μ€λ€. | ||
- `try-catch`λ‘ μ²λ¦¬νκ±°λ `throws`λ₯Ό λμ Έ λ¬Έμ λ₯Ό μ νν΄μΌ νλ€. | ||
- κ²μ¬ μμΈλ₯Ό λμ§λ λ©μλλ μ€νΈλ¦Ό μμμ μ§μ μ¬μ©ν μ μμ΄μ [*item 45~48*] λΆλ΄μ μ€λ€. | ||
- νΉν, λ©μλκ° λ¨ νλμ κ²μ¬ μμΈλ§ λμ§ λ λΆλ΄μ΄ ν¬λ€. | ||
- κ·Έ μμΈ νλ λλ¬Έμ API μ¬μ©μλ try λΈλ‘μ μΆκ°ν΄μΌ νκ³ , μ€νΈλ¦Όμμλ μ¬μ© λͺ»νκ² λλ€. | ||
- μ΄λ° μν©μμ κ²μ¬ μμΈλ₯Ό μ λμ§ λ°©λ²μ΄ μλμ§ κ³ λ―Όν΄λ³΄μ. | ||
|
||
## **κ²μ¬ μμΈ ννΌ λ°©λ² π** | ||
|
||
### **(1) μ΅μ λ** | ||
|
||
- μ μ ν κ²°κ³Ό νμ μ λ΄μ μ΅μ λμ λ°ννλ κ²μ΄ κ²μ¬ μμΈλ₯Ό ννΌνλ κ°μ₯ μ¬μ΄ λ°©λ²μ΄λ€. | ||
- κ²μ¬ μμΈλ₯Ό λμ§λ λμ λ¨μν λΉ μ΅μ λμ λ°ννλ©΄ λλ€. | ||
- κ·Έλ¬λ μ΄ λ°©μμ μμΈκ° λ°μν μ΄μ λ₯Ό μλ €μ£Όλ λΆκ°μ 보λ₯Ό λ΄μ μ μλ€λ λ¨μ μ΄ μλ€. | ||
- μμΈλ₯Ό μ¬μ©νλ©΄, ꡬ체μ μΈ μμΈ νμ κ³Ό λ©μλλ₯Ό νμ©ν΄ λΆκ°μ 보λ₯Ό λ΄μ μ μλ€. | ||
|
||
### **(2) λ©μλ μͺΌκ°κΈ°** | ||
|
||
κ²μ¬ μμΈλ₯Ό λμ§λ λ©μλλ₯Ό 2κ°λ‘ μͺΌκ° λΉκ²μ¬ μμΈλ‘ λ°κΏ μ μλ€. | ||
|
||
```java | ||
// κ²μ¬ μμΈλ₯Ό λμ§λ λ©μλ - 리ν©ν°λ§ μ | ||
try { | ||
obj.action(args); | ||
} catch (TheCheckedException e) { | ||
... // μμΈ μν©μ λμ²νλ€. | ||
} | ||
``` | ||
|
||
```java | ||
// μν κ²μ¬ λ©μλμ λΉκ²μ¬ μμΈλ₯Ό λμ§λ λ©μλ - 리ν©ν°λ§ ν | ||
if(obj.actionPermitted(args)) { | ||
obj.action(args); | ||
} else { | ||
... // μμΈμν©μ λμ²νλ€. | ||
} | ||
``` | ||
- λͺ¨λ μν©μ μ μ©ν μ μλ 리ν©ν°λ§μ μλλ€. | ||
- λν, μν κ²μ¬ λ©μλμ λ¨μ λ κ·Έλλ‘ μ μ©λλ€. - *item 69* | ||
- μΈλΆ λκΈ°ν μμ΄ μ¬λ¬ μ€λ λκ° λμμ μ κ·Όν μ μκ±°λ μΈλΆ μμΈμ μν΄ μνκ° λ³ν μ μλ€λ©΄ μ΄ λ¦¬ν©ν°λ§μ μ μ νμ§ μλ€. | ||
- μν κ²μ¬ λ©μλ(`actionPermitted`)κ° μν μμ‘΄μ λ©μλ(`action`)μ μμ μΌλΆλ₯Ό μ€λ³΅ μννλ€λ©΄ μ±λ₯μμ μν΄μ΄λ―λ‘, μ΄ λ¦¬ν©ν°λ§μ΄ μ μ νμ§ μμ μ μλ€. | ||
|
||
## **π‘ ν΅μ¬ μ 리** | ||
|
||
- κΌ νμν κ³³μμλ§ κ²μ¬ μμΈλ₯Ό μ¬μ©νμ. | ||
- API νΈμΆμκ° μμΈ μν©μμ 볡ꡬν λ°©λ²μ΄ μλ€λ©΄ λΉκ²μ¬ μμΈλ₯Ό λμ§μ. | ||
- λ³΅κ΅¬κ° κ°λ₯νκ³ νΈμΆμκ° κ·Έ μ²λ¦¬λ₯Ό ν΄μ£ΌκΈΈ λ°λλ€λ©΄ μ΅μ λ λ°νμ κ³ λ―Όνμ. | ||
- μ΅μ λλ§μΌλ‘ μν©μ μ²λ¦¬νκΈ°μ μΆ©λΆν μ 보λ₯Ό μ 곡ν μ μμ λλ§ κ²μ¬ μμΈλ₯Ό λμ§μ. |