Java ์์ธ
โข
์ผ๋ฐ ์์ธ(Exception)๊ณผ ์คํ ์์ธ(RuntimeException)์ผ๋ก ๋๋๋ค.
โข
์ต์์ exception class๋ java.lang.Exception์ด๋ค.
โข
JVM์ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๋์ค์ ์์ธ๊ฐ ๋ฐ์ํ๋ฉด ํด๋น ์์ธ ํด๋์ค๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
โข
์ผ๋ฐ ์์ธ๋ Exception์ ์์๋ฐ์ง๋ง Runtime Exception์ ์์๋ฐ์ง ์๋๋ค.
โฆ
Runtime Exception๋ Exception์ ์์ ๋ฐ๋๋ค.
Runtime Exception ์ข
๋ฅ
โข
java.lang.NullPointerException
โข
๊ฐ์ฒด ์ฐธ์กฐ๊ฐ ์๋ ์ํ, ์ฆ null ๊ฐ์ ๊ฐ๋ ์ฐธ์กฐ ๋ณ์๋ก ๊ฐ์ฒด ์ ๊ทผ ์ฐ์ฐ์์ธ ๋ํธ(.)๋ฅผ ์ฌ์ฉํ์ ๋ ๋ฐ์ํ๋ค.
โข
java.lang.ArrayIndexOutOfBoundsException
โข
๋ฐฐ์ด์์ ์ธ๋ฑ์ค ๋ฒ์๋ฅผ ์ด๊ณผํ์ฌ ์ฌ์ฉํ ๊ฒฝ์ฐ
โข
java.lang.NumberFormatException
โข
Wrapperํด๋์ค์์ paresXXX ๋ฉ์๋๋ก ๋ฌธ์์ด์ ์ซ์๋ก ๋ณํํ ๋ ์ซ์๋ก ๋ณํํ ์ ์๋ ๋ฌธ์๊ฐ ํฌํจ๋๋ฉด ๋ฐ์
โข
java.lang.ClassCastException
โข
์ต์ง๋ก ํ์
๋ณํ์ ํ ๊ฒฝ์ฐ ๋ฐ์
์ผ๋ฐ ์์ธ
โข
์ปดํ์ผ๋ฌ๊ฐ ๊ฐ๋ฐ์๋ก ํ์ฌ๊ธ ์์ธ ์ฒ๋ฆฌ ์ฝ๋๋ฅผ ์์ฑํ๊ฒ ํ๋ค.
์์ธ ์ฒ๋ฆฌ ์ฝ๋
โข
try ๋ธ๋ก๊ณผ catch ๋ธ๋ก์์ return๋ฌธ์ ์ฌ์ฉํ๋๋ผ๋ finally ๋ธ๋ก์ ์คํ๋๋ค.
โข
๋ค์ค catch๋ฅผ ์์ฑํ ๊ฒฝ์ฐ ํ๋์ catch๋ง ์คํ๋๋ค.
โข
catch๋ธ๋ก ์์์๋ถํฐ ์๋๋ก ์คํ๋๋ฏ๋ก ์์ ์์ธ ํ์
์ด ์์ ์์ผ๋ฉด ์๋ ์๋ ํ์ ์์ธํ์
์ ์คํ๋์ง ์์ผ๋ฏ๋ก ์ฃผ์
โข
๋ฉํฐ catch๋ catch(์์ธ | ์์ธ) ์ ํํ๋ก ์ฌ์ฉํ ์ ์๋ค. ๋์ผํ๊ฒ ์ฒ๋ฆฌํ๊ณ ์ถ์ ์์ธ ํ ๋ฒ์ ์ ์ธํ ๋ ์ฌ์ฉ
try(FileInputStream fis = new FileInputStream("file.txt")
FileOutputStream fos = new FileOutputStream("file2.txt")){
} catch(IOException e) {
}
Java
๋ณต์ฌ
โข
try๋ฌธ์ด ์ ์ ์คํ๋๊ฑฐ๋ ์์ธ๊ฐ ๋ฐ์ํ๋ฉด ๋ฆฌ์์ค๋ฅผ ๋ซ๊ณ catch ๋ธ๋ก์ ํธ์ถํ๋ค.
โข
์ฌ๋ฌ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
โข
๋ฆฌ์์ค ๊ฐ์ฒด๊ฐ java.lang.AutoClosable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๊ณ ์์ด์ผ ํ๋ค.
โข
์ฌ์ฉํ๋์ด์
โฆ
finally๊ตฌ๋ฌธ์ close๊ณผ์ ์์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด try ์๋ฌ๋ฅผ ๋ณผ ์๊ฐ ์๋๋ฐ try-with-resource๋ close ๊ฐ์ ๋ถ์ฐจ์ ์ธ ์์ธ๋ฅผ ์๋์ผ๋ก ์ต์ ํด ์ค๋ค. ๋ฐ๋ผ์ ์ง์ง ๋ณด๊ณ ์ ํ๋ try์์ธ๋ฅผ ์ ์์ ์ผ๋ก ๋ณผ ์ ์๋ค.
โฆ
์์ธ๊ฐ ๋ฐ์ํด๋ ์์์ ํ์คํ๊ฒ ํด์ ํ ์ ์๋ค.
โฆ
์ฝ๋๊ฐ ๊ฐ๊ฒฐํด์ง๋ค.
์ฌ์ฉ์ ์ ์ ์์ธ
โข
์ ํ๋ฆฌ์ผ์ด์
์๋น์ค์ ๊ด๋ จ๋ ์์ธ๋ฅผ ์ ํ๋ฆฌ์ผ์ด์
์์ธ(Application Exception)์ด๋ผ๊ณ ํ๋ค.
โข
๋๋ถ๋ถ ์์ฑ์ ์ ์ธ๋ง์ ํฌํจํ๋ค.
โข
์์ฑ์ ๋ ๊ฐ๊ฐ ์ผ๋ฐ์
โข
๋งค๊ฐ ๋ณ์๊ฐ ์๋ ๊ธฐ๋ณธ ์์ฑ์์ String ํ์
์ ๋งค๊ฐ ๋ณ์๋ฅผ ๊ฐ๋ ์์ฑ์์ด๋ค.
โข
String ํ์
์ ๋งค๊ฐ ๋ณ์๋ฅผ ๊ฐ๋ ์์ฑ์๋ ์์ ํด๋์ค์ ์์ฑ์๋ฅผ ํธ์ถํ์ฌ ์์ธ ๋ฉ์์ง๋ฅผ ๋๊ฒจ ์ค๋ค.
์์ธ ๋ฐ์์ํค๊ธฐ
โข
throw new XXXException();
โข
throws new XXXException(๋ฉ์์ง);
โข
๋๋ถ๋ถ throws๋ก ์์ ์ ํธ์ถํ ๊ณณ์ ์์ธ๋ฅผ ๋์ง๋ค.
์์ธ ์ ๋ณด ์ป๊ธฐ
โข
catch๋ฌธ์์ ์ฌ์ฉ
โข
e.getMessage()
โข
e.printStackTrace()