Coding Planet
์์ธ ๋์ง๊ธฐ/๋ ๋๊ธฐ๊ธฐ -throws ๋ณธ๋ฌธ
๐ป Java Study/Java ์ด๋ก ์ ๋ฆฌ
์์ธ ๋์ง๊ธฐ/๋ ๋๊ธฐ๊ธฐ -throws
jhj.sharon 2023. 1. 26. 15:51๋ฐ์ํ
์์ธ์ฒ๋ฆฌ๋ฅผ ์ํด์๋ ๋ณดํต try~catch~finally๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ธฐ๋ณธ์ ์ด๋ค.
์ด์ธ์๋ throws๋ฅผ ํตํด ํน์ ์์ธ๊ฐ ๋ฐ์ ๊ฒฝ์ฐ์ ์คํํ ๋ช ๋ น์ด๋ฅผ catch๋ธ๋ญ์ ์์ฑํ์ง ์๊ณ ๋
์์ธ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๋ค.
1. throws
- try~catch ์์ธ์ฒ๋ฆฌ ์ ๋ฉ์๋๋ง๋ค try~catch๋ฅผ ์ฌ์ฉํด ์์ธ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๋๋ฐ ๋ฉ์๋๋ฅผ ํธ์ถํ ๊ณณ(์ผ๋ฐ์ ์ผ๋ก main())์์ ์์ธ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๋ ๋ฐฉ์์ด๋ค.
- ์์ธ๊ฐ ๋ฐ์ํ์ ๋ ์์ธ๋ฅผ ์ผ์ผํค๋ ๋ฉ์๋๋ฅผ ํธ์ถํ ๋ฉ์๋๋ก ์์ธ๋ฅผ ๋๊ธฐ๊ณ ์ฑ ์์ ์ ๊ฐํ๋ ๋ฐฉ๋ฒ
- throws๋ฅผ ๋ฉ์๋ ์ ์ธ๋ถ์ ๋ช ์ํด ์ฃผ์ด์ ์์ธ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์๋ ์ฝ๋๊ฐ ์๋ค๋ ๊ฒ์ ์๋ ค์ค๋ค
- ๋ํ, ๋ฐ์ ๊ฐ๋ฅํ ์์ธ๋ฅผ ํน์ ๋ฉ์๋์์ ํ ๋ฒ์ ์ฒ๋ฆฌํด ์ฃผ๊ธฐ ๋๋ฌธ์ ๊ด๋ฆฌ๊ฐ ์ฉ์ดํ๋ค.
- ์ผ๋ฐ์ ์ผ๋ก main() ๋ฉ์๋ ๋ด๋ถ์์ try~catch ๋๋ try~catch~finally ๋ธ๋ญ์ ์์ฑํ๊ณ ๋ค๋ฅธ ๋ฉ์๋ ๋ด๋ถ์์๋ throws ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค.
- throws๋ ์์ธ์ฒ๋ฆฌ๋ฅผ ๋ ๋๊ธฐ๋ ์์ฝ์ด๋ก ๋ ๋ฉ์๋ ์ค ํ ๋ฉ์๋๋ ๋ฐ๋์ try~catch๋ฅผ ์ฌ์ฉํด์ ์์ธ์ฒ๋ฆฌ๋ฅผ ํด์ผํ๋ค. ์ด๋ฌํ try~catch๊ฐ ์๋ค๋ ์์ธ๋ฅผ ๋จ์ํ ์ ๋ฌ๋ง ํ ๊ฒ์ผ๋ก ์์ธ๊ฐ ์ฒ๋ฆฌ๊ฐ ๋ ๊ฒ์ ์๋๋ค.
** throw์ throws๋ ๋ค๋ฅด๋ค! ๊ตฌ๋ถํ ๊ฒ
- throw๋ ์์ธ๋ฅผ ๊ฐ์ ๋ก ๋ฐ์์ํค๋ ๋ฌธ๋ฒ์ด๋ค -> throw new ๋ฐ์์ํฌ์์ธ;
2. ์์ธ์ฒ๋ฆฌ์ ์คํํ๋ฆ
- main() ๋ฉ์๋์์ ์์ํด์ ํธ์ถํ ๋ฉ์๋๋ก ์ด๋: main() -> method()
- try~catch ์์ธ์ฒ๋ฆฌ์์๋ ๊ฐ๊ฐ์ ๋ฉ์๋๋ง๋ค try~catch ๋ธ๋ญ์ ์์ฑํด์ผํ์ง๋ง throws ๋ฐฉ์์์๋ ๋ฉ์ธ์์๋ง try~catch๋ฌธ์ ์์ฑํ๊ณ ๋ค๋ฅธ ๋ฉ์๋์์๋ throws Exception์ ํตํด ์์ธ์ฒ๋ฆฌ๋ฅผ main()์ผ๋ก ๋ ๋๊ธด๋ค.
1) try~catch ์์ธ์ฒ๋ฆฌ์ ์คํํ๋ฆ public static void method(){ // ๋ช ๋ น์ด: ๋ค๋ฅธ ๋ฉ์๋๋ฅผ ํธ์ถ๋ ๊ฐ๋ฅ: ๋ช ๋ น์ด๋ฅผ ์คํํ๋ค๊ฐ ์ค๋ฅ๋ฐ์(์ฐ์ ์ค๋ฅ: 5/0) try{ int r = 5/0; System.out.println("5๋ฅผ 0์ผ๋ก ๋๋ ๊ฐ์ "+ r); }catch(ArithmeticException e){ e.printStackTrace(); } } public static void main(String[] args){ // ์์์ ์ ์ํ method() ๋ฉ์๋ ํธ์ถ } |
2) throw ์์ธ์ฒ๋ฆฌ์ ์คํํ๋ฆ public static void method() throws Exception{ // ๋ช ๋ น์ด: ๋ค๋ฅธ ๋ฉ์๋๋ฅผ ํธ์ถ๋ ๊ฐ๋ฅ: ๋ช ๋ น์ด๋ฅผ ์คํํ๋ค๊ฐ ์ค๋ฅ๋ฐ์(์ฐ์ ์ค๋ฅ: 5/0) //int r = 5/0; //System.out.println("5๋ฅผ 0์ผ๋ก ๋๋ ๊ฐ์ "+ r); int r = 5/2; System.out.println("5๋ฅผ 2์ผ๋ก ๋๋ ๊ฐ์ "+ r); } public static void main(String[] args){ // ์์์ ์ ์ํ method() ๋ฉ์๋ ํธ์ถ try{ method(); System.out.println("method() ๋ฉ์๋ ๋ด๋ถ์ ์๋ ๋ชจ๋ ๋ช ๋ น์ด ์คํ "); }catch(ArithmeticException e){ e.printStackTrace(); System.out.println("method() ์ค๋ฅ๋ฐ์ "); } } |
3. throws ์ฌ์ฉํ์
- ์์ธ ๋ฐ์์ด ๊ฐ๋ฅํ ๋ฉ์๋์ ์๊ทธ๋์ฒ(์ ์ธ๋ถ)์ throws ํค์๋๋ฅผ ์ ๊ณ ๋ฐ์ ๊ฐ๋ฅํ ์์ธ ํด๋์ค๋ฅผ ์ ์ด์ค๋ค.
- ์์ธ ํด๋์ค๋ฅผ 21๊ฐ ์ด์ ๋์ดํ๊ธฐ ์ํด์๋ ์ผํ๋ก ๊ตฌ๋ถํ์ฌ ๋์ดํ๋ค.
- ์ด๋ exception ํด๋ ์ค๋ก ๋ชจ๋ ์์ธ๋ฅผ ๋๊ธฐ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค-> Exception์ ๋ชจ๋ ์์ธ์ ์ต๊ณ ์กฐ์์ด๋ค.
- ์์ธ๊ฐ ๋ฐ์ ๊ฐ์ผํ ๋ฉ์๋๋ฅผ ํธ์ถํ ๋ฉ์๋์์๋ try~catch๋ฌธ์ผ๋ก ์์ธ์ฒ๋ฆฌ๋ฅผ ํด์ผํ๋ค.
โจJDBC์์ throws ์ฌ์ฉํด๋ณด๊ธฐ
1. throws ์์ธ์ฒ๋ฆฌ ์ ์ธํ ๋ฉ์๋
2. ์์ ๋ฉ์๋๋ฅผ ํธ์ถํ main()๋ฉ์๋์์ ์์ธ์ฒ๋ฆฌ
๋ฐ์ํ
'๐ป Java Study > Java ์ด๋ก ์ ๋ฆฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Comments