์ด ๊ธฐ์ฌ์์๋ Java์ ์์ธ์ ๊ดํด ๊ฐ์ฅ ์์ฃผ ๋ฌป๋ 10๊ฐ์ง ์ง๋ฌธ์ ์ค๋ช
ํฉ๋๋ค.
1. ๊ฒ์ฆ ๊ฐ๋ฅํ ๊ฒ๊ณผ ๊ฒ์ฆ ๋ถ๊ฐ๋ฅํ ๊ฒ
์ฆ, ํ์ธ๋ ์์ธ๋ ๋ฉ์๋ ๋ณธ๋ฌธ์์ ๋ช
์์ ์ผ๋ก ํฌ์ฐฉ๋๊ฑฐ๋ ๋ฉ์๋์ throws ์น์
์์ ์ ์ธ๋์ด์ผ ํฉ๋๋ค. ํ์ธ๋์ง ์์ ์์ธ๋ 0์ผ๋ก ๋๋๊ธฐ, ๋ ํฌ์ธํฐ ๋ฑ๊ณผ ๊ฐ์ด ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ๋ก ์ธํด ๋ฐ์ํฉ๋๋ค. ํ์ธ๋ ์์ธ๋ API๋ฅผ ์ฌ์ฉํ๋ ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ์์ธ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ์๊ณ ์์ ๊ฒ์ผ๋ก ๊ธฐ๋ํ๊ธฐ ๋๋ฌธ์ ํนํ ์ค์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, IOException์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ํ์ธ ์์ธ์ธ ๋ฐ๋ฉด RuntimeException์ ํ์ธ๋์ง ์์ ์์ธ์
๋๋ค.
๋ ์ฝ๊ธฐ ์ ์ Java์ ๊ณ์ธต์ ์์ธ ๋ค์ด์ด๊ทธ๋จ์ ํ์ธํ์ธ์ .
2. ์์ธ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ
์์ธ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์์ผ๋ฉด ์ด๋ฅผ ํฌ์ฐฉํด์ผ ํ๋ฉฐ, ๊ทธ๋ ์ง ์์ผ๋ฉด ์ ๋ฌํด์ผ ํฉ๋๋ค.
3. try์ ์ ์๋ ๋ณ์๋ฅผ catch๋ finally์์ ์ฌ์ฉํ ์ ์๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
๋ค์ ์ฝ๋ ๋ถ๋ถ์์ try ๋ธ๋ก์ ์ ์ธ๋ s ์ค์ catch ๋ธ๋ก์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ์ฝ๋๋ ์ปดํ์ผ๋์ง ์์ต๋๋ค.
try {
File file = new File("path");
FileInputStream fis = new FileInputStream(file);
String s = "inside";
} catch (FileNotFoundException e) {
e.printStackTrace();
System.out.println(s);
}
๊ทธ ์ด์ ๋ try ๋ธ๋ก์์ ์์ธ๊ฐ ๋ฐ์ํ ์ ํํ ์์น๋ฅผ ์ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ๊ฐ์ฒด๊ฐ ์ ์ธ๋๊ธฐ ์ ์ ์์ธ๊ฐ ๋ฐ์ํ์ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ์ด ์์์๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค.
4. Double.parseDouble(null)๊ณผ Integer.parseInt(null)์ด ์๋ก ๋ค๋ฅธ ์์ธ๋ฅผ ๋ฐ์์ํค๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
๋ง์ต๋๋ค. ๊ทธ๋ค์ ๋ค๋ฅธ ์์ธ๋ฅผ ๋ฐ์์ํต๋๋ค. ์ด๊ฒ์ JDK ๋ฌธ์ ์
๋๋ค. ๊ทธ๊ฒ๋ค์ ๋จ์ํ ๋ค๋ฅธ ์ฌ๋๋ค์ ์ํด ๋์์ธ๋์์ผ๋ฏ๋ก ๋๋ฌด ๊ฑฑ์ ํ ํ์๊ฐ ์์ต๋๋ค.
Integer.parseInt(null);
Double.parseDouble(null);
5. Java์ ๊ธฐ๋ณธ ๋ฐํ์ ์์ธ
๋ค์์ ๊ทธ ์ค ๋ช ๊ฐ์ง์
๋๋ค.
IllegalArgumentException
ArrayIndexOutOfBoundsException
๋ค์๊ณผ ๊ฐ์ด ์กฐ๊ฑด์ด ์ถฉ์กฑ๋์ง ์์ ๋ if ๋ฌธ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
if (obj == null) {
throw new IllegalArgumentException("obj ะฝะต ะผะพะถะตั ะฑััั ัะฐะฒะฝะพ null");
6. ํ๋์ catch ๋ธ๋ก์์ ์ฌ๋ฌ ์์ธ๋ฅผ ํฌ์ฐฉํ ์ ์์ต๋๊น?
๋๋ต์ '์'์
๋๋ค. ์ด๋ฌํ ์์ธ์ ํด๋์ค๋ฅผ ํด๋์ค ์์ ๊ณ์ธต ๊ตฌ์กฐ์์ ๋์ผํ ์ํผํด๋์ค๋ก ์ถ์ ํ ์ ์๋ ํ ํด๋น ์ํผํด๋์ค๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
7. ์์ฑ์๊ฐ ์์ธ๋ฅผ ๋ฐ์์ํฌ ์ ์๋์?
๋๋ต์ '์'์
๋๋ค. ์์ฑ์๋ ๋จ์ง ํน๋ณํ ์ข
๋ฅ์ ๋ฉ์๋์ผ ๋ฟ์
๋๋ค.
๋ค์์ ์ฝ๋ ์์์
๋๋ค .
8. ๋ง์ง๋ง ๋ธ๋ก์์ ์์ธ ๋์ง๊ธฐ
์์น์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ํฉ๋ฒ์ ์ผ๋ก ์ํํ ์ ์์ต๋๋ค.
public static void main(String[] args) {
File file1 = new File("path1");
File file2 = new File("path2");
try {
FileInputStream fis = new FileInputStream(file1);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
try {
FileInputStream fis = new FileInputStream(file2);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
try-catch
๊ทธ๋ฌ๋ ์ฝ๋์ ๊ฐ๋
์ฑ์ ์ ์งํ๋ ค๋ฉด ์ค์ฒฉ๋ ๋ธ๋ก์ ์ ๋ฉ์๋๋ก ์ ์ธํ๊ณ ์ด ๋ฉ์๋์ ๋ํ ํธ์ถ์ ๋ธ๋ก์ ์ฝ์
ํด์ผ ํฉ๋๋ค
finally
.
public static void main(String[] args) {
File file1 = new File("path1");
File file2 = new File("path2");
try {
FileInputStream fis = new FileInputStream(file1);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
methodThrowException();
}
}
9. finally ๋ธ๋ก์์ return์ ์ฌ์ฉํ ์ ์๋์?
๊ทธ๋ ๋ ํ ์์์ด.
10. ๊ฐ๋ฐ์๋ ์ ์์ธ๋ฅผ ์กฐ์ฉํ ์ฒ๋ฆฌํฉ๋๊น?
์๋ฅผ ๋ค์ด, ์ด๋ฌํ ์ฝ๋ ์กฐ๊ฐ์ด ์์ฃผ ๋ํ๋ฉ๋๋ค. ์ ์ ํ ์์ธ ์ฒ๋ฆฌ๊ฐ ๊ทธํ ๋ก ์ค์ํ๋ค๋ฉด ๊ฐ๋ฐ์๋ ์ ๊ณ์ํด์ ์ด๋ฐ ๋ฐฉ์์ผ๋ก ์์ฑํฉ๋๊น?
try {
...
} catch(Exception e) {
e.printStackTrace();
}
๋ฌด์ํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ฝ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ด ์์ฃผ ํํด์ง๋ค๊ณ ํด์ ๊ทธ๊ฒ์ด ์ณ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ ๊ฒ์ ์๋๋ค. ์ฐ๊ฒฐ:
- Java์ ํ์ธ๋์ง ์์ ์์ธ
- Java์ ๊ณ์ธต์ ์์ธ ํธ๋ฆฌ์ ๋ฃจํธ
- stackoverflow์ ์์ธ์ ๋ํ ์ง๋ฌธ
์๋ณธ ๊ธฐ์ฌ
GO TO FULL VERSION