ํ์ฌ ์งํ์ค์ธ ํ๋ก์ ํธ์ Global Exception๊ณผ Try/Catch๋ฅผ ์ฌ์ฉํ๊ณ ์๋๋ฐ์.
๊ตณ์ด Try/Catch๋ฅผ ์ฌ์ฉํ์ง ์๊ณ throw exception์ผ๋ก ๋์ ธ์ Global Exception์์ ๋ก๊ทธ๋จ๊ธฐ๊ณ ์์ธ ์ฒ๋ฆฌํ๋ฉด ๋์ง ์๋, ๋ก๊ทธ์ ๊ทธ์ ๋ง๋ ๋ฉ์์ง๋ฅผ ๋จ๊ธฐ๋ฉด ๋์ง ์๋ ๋ผ๋ ์๊ฒฌ์ด ์์๋๋ฐ์.
์ ๊ฐ์ธ์ ์ธ ์๊ฒฌ์ผ๋ก๋ Global Exception์ Try/Catch๋ก ์ฒ๋ฆฌ๋์ง ๋ชปํ ๊ฒ๋ค์ ๋ํด ์ตํ์ ๋ณด๋ฃจ๋ก ์๊ฐํ๊ณ Try/Catch๋ฅผ ์ฌ์ฉํด์ ๊ฐ ์์ธ๊ฐ ๋ฐ์ํ ์์น์ ๋ฐ์ ์์ธ์ ๋ฐ๋ผ ๋ถ๊ธฐํ์ฌ ๋ก๊ทธ๋ฅผ ๋จ๊ธฐ๊ณ ๊ทธ์ ๋ง๋ ์ฒ๋ฆฌ ๋ก์ง์ ์ง๋ ๊ฒ ์ ์ง๋ณด์๋ ๋ฌธ์ ํด๊ฒฐ์ ์ข ๋ ์ํํ๊ฒ ํด์ค ๊ฒ ๊ฐ์๋ฐ ์ด๋ป๊ฒ๋ค ์๊ฐํ์๋์?
6 Likes
try-catch๋ ์ต๋ํ ์งง์ ๊ตฌ๊ฐ์์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ง๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐํ ๋๋ ์ฐ๋, ๋ฐฐํฌํ ๋๋ ๋นผ์ผํ๋ ๊ฒ์ด์ง์.
๊ทธ๊ฒ์ด ์ถฉ๋ถํ ํ
์คํธ๋ฅผ ํ๋ค ๋ผ๋ ์ฆ๊ฑฐ์
๋๋ค.
์ถฉ๋ถํ ํ
์คํธ๋ ๊ฐ๋ฐ์์ ์์ ๊ฐ๊ณผ ์ ํ์ ๋ํ ๋ํ
์ผ๊ณผ ์ ๋ขฐ๋ก ์ง๊ฒฐ๋ฉ๋๋ค.
๋๊ณ ์๋ ํ๋ก๊ทธ๋จ์ด ์ฃฝ๋ ๋ค๋ ๊ฒ์ ๋ง์ด ์๋๊ธฐ ๋๋ฌธ์ Global Exception์ ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํ์ง๋ง ์ธ๋ถ์ ์ผ๋ก ์๋ try - catch๋ค์ ์งง๊ฒ ์งง๊ฒ ํด์ ๋ํ
์ผํ๊ฒ ํ์๋ ๊ฒ์ด ๋ง์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์์ธก์ด ๊ฐ๋ฅํ ์ ์์ try catch์์ด ์์ธ๋ฅผ ์๊ฐํด๋ด๊ณ ์ฒ๋ฆฌํ๋ค๋ฉด ์ ๊ฑฐํด์ผํ๋ ๊ฒ์ด์ง์.
์ฐ๋ ํ๋ก๊ทธ๋จ์ด global exception์ด ์์ด์ ์ฃฝ๋ ๊ฒ์ ๋๋ฉ์ธ์ ๋ฐ๋ผ ๋งค์ฐ ์น๋ช
์ ์ผ ์ ์์ต๋๋ค.
์ผ๋ฐ ERP ์
๊ณ์์๋ ํฌ๊ฒ ์น๋ช
์ ์ด์ง ์์ ์ ์์ผ๋ (๋ฌผ๋ก ๊ทธ๊ฒ๋ ํ์ฌ๋ง๋ค ๋ค๋ฆ), FA ๊ฐ์ ๊ณต์ฅ ์๋ํ ์ชฝ์์๋ ๊ธฐ๊ณ์์ ์ฃผ๋ ๊ฐ์ด ๋
ธ์ด์ฆ๋ฅผ ๋ฐ์์์ผ์ ํ์ฑ์ด ๋ถ๊ฐ๋ฅํ๊ฒ ๊ฐ์ด ๋ค์ด์์ ํ๋ก๊ทธ๋จ์ด ์ค๋ฅ๊ฐ ๋ฌ์ ๊ฒฝ์ฐ, ๊ธฐ๊ณ๋ฅผ ์ ์ดํ๋ ํ๋ก๊ทธ๋จ ์ข
๋ฃ๋๋๋ฐ ๊ธฐ๊ณ๋ ์ข
๋ฃ ๋ช
๋ น์ ๋ฐ์ง ๋ชปํ์ผ๋ฏ๋ก ๊ณ์ํด์ ๋๊ณ ์์ ์ ์์ต๋๋ค.
๊ทธ๋์ Global Exception์ด ํ์ํ๊ณ Windows Event Viewer๋ ํ์ํ ๊ฒ์
๋๋ค.
Try - Catch๋ฅผ ๋ฐฐํฌ ํ ๋ฐํ์์์ ์ ๊ฑฐํด์ผํ๋ ์ด์ ๋ ์ฌ๋๋ง๋ค ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๊ฒ ์ง๋ง, catch์ ์์ธ๊ฐ ๋ฐ์ํ์ ๊ฒฝ์ฐ Exception ๊ฐ์ฒด ์์ฑ์ ์ํด ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ์ฌ ์ฝ๊ฐ์ด์ง๋ง ๋๋ ค์ง์ด ์๊ธฐ ๋๋ฌธ์
๋๋ค. (์ฌ๋์ ๋ณดํต ์ฒด๊ฐ ๋ถ๊ฐ๋ฅ)
๋จ์ํ try์ scope ์์ ๋ค์ด์๋ค๊ณ ํด์ ์ฝ๋๊ฐ ๋๋ ค์ง๋ ๊ฒ๋ ์๋๊ณ , try ๋ค์์ finally๋ก ๋น ์ก๋ค๊ณ ํด์ ์ฝ๋๊ฐ ๋๋ ค์ง๋ ๊ฒ๋ ์๋๊ณ , catch์ ๊ฑธ๋ ธ์ ๋ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ๊ณ ์ปดํจํฐ์
์ฅ์์ ๋๋ ค์ง๋ ๊ฒ์
๋๋ค.
try-catch๋ฅผ ๋ฌธ์ฅ๋ง๋ค ์งง๊ฒ ๊ฑธ์ง์๊ณ ๋ฌํํ๊ฒ ๊ธธ๊ฒ ๊ธธ๊ฒ ๊ฑด๋ค๋ ๊ฒ์,
๊ฐ๋ฐ์๊ฐ ์์ ์ ์ฝ๋์ ์์ ์ด ์๋ค๋ ๋ป์ด๋ฉฐ, ์์ธ๋ฅผ ํน์ ํ ์์ง๊ฐ ์๋ค๋ ๋ป์ด๊ณ , ์์ธ๊ฐ ์ธ๋ถ์ ์ผ๋ก ๊ตฌ๋ถ๋์ด์์ง ์์์ ์ถํ ์ ์ง๋ณด์ ํ ๋ ์์ธ์ ๋ด์ฉ๊น์ง ๋ชจ๋ ํ์
ํด์ผํ๋ค๋ ๊ฒ์
๋๋ค.
๊ทธ ์์ค์ฝ๋๋ฅผ ์ ์ง๋ณด์ํ๊ฒ ๋ ๋ฏธ๋์ ๋์ ๋๋ฃ์ ์๊ฐ์ ๊ฐ์ ๋จน๋ ๊ฒ์ด์ง์.
์ ๊ฐ ์ถ์ฒํ๋ ๋ฐฉ๋ฒ์ ์ ๋ํ
์คํธ ๋ฅผ ์ ๊ทน ํ์ฉํ๋ ๊ฒ์
๋๋ค.
๊ฐ์ฒด์งํฅ์ธ ๋ชจ๋ธ๋ค์ ์ถ์ํํ์ฌ ๋ผ์ด๋ธ๋๋ ํ๋ก์ ํธ์ ๊ฐ๋ฐ์ ํด๋๊ณ ๊ทธ ๊ธฐ๋ฅ์ ๊ทธ๋๋ก ์ ๋ํ
์คํธ ํ๋ก์ ํธ์์ ์์ธ๊ฐ ๋ฐ์ํ ๋งํ ๊ฐ๋ค์ ๋ํด ๋ฃ๊ณ ์ ๋ํ
์คํธ์ try-catch๋ฅผ ๊ฑฐ๋ ๊ฒ์
๋๋ค.
์ด ๋ฐฉ์์ ์ฅ์ ์ catch์ ๊ฑธ๋ ค์ ์์ธ๊ฐ ๋ฐ์ํ๋ case ๋ค์ ํน์ ํ ์ ์๊ณ , ๊ทธ๊ฒ์ด ์์ค์ฝ๋๋ก ๋์ ์ด๋๋ฉฐ, ์ธ์ ๋ VS์ ํ
์คํธํ์๊ธฐ๋ฅผ ํตํด ๋ด๊ฐ ์ํ ๋ ์์ธ๋ฅผ ๋ฐ์์์ผ๋ณผ ์ ์๋ค๋ ๊ฒ์
๋๋ค.
์ด๋ ๊ฒ ํด์ ์ถฉ๋ถํ ํ
์คํธ๊ฐ ๋๋ฉด ๋ฐฐํฌ๋๋ ๋ผ์ด๋ธ ์์ค์ฝ๋์๋ try-catch๋ฅผ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
6 Likes
nyjin
3
asp.net core์ global exception์ ๋ง์ํ์๋ ๊ฒ์ผ๋ก ์ดํดํ๋ค๋ฉด exception ๋ฐ์์ stacktrace๋ ์์ธ ๋ฉ์์ง์ ๋ํ ์ผ๋ฐ์ ์ธ ์ ๋ณด๋ค์ ๋ชจ์ ํด๋ผ์ด์ธํธ์ ์ ๋ฌํ๋ ์์ค์ ๊ธฐ๋ณธ์ ์ธ ์์ธ ๋ฉ์์ง์ 500 ์๋ต์ผ๋ก ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํด๋ณด์
๋๋ค
๋ง์์ฒ๋ผ API๋ฅผ ๊ตฌ์ฑํ๋ค๋ณด๋ฉด ์์ธ ์ฒ๋ฆฌ์ ์๋ต์ ์ธ๋ถํํ์ฌ ์ฒ๋ฆฌํ ์ผ๋ค์ด ๋ฐ์๋ฉ๋๋ค.
์๋ฅผ ๋ช๊ฐ์ง ๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
- ์์ฒญ ๊ฐ์ด ์ถฉ๋ถํ์ง ์์ ๋ 400 bad request๋ฅผ ์ฒ๋ฆฌ
- ef core์ ๊ฐ์ orm์ ์ธ๋ save ์์ ์ ์ค๋ณต id insert์ ๋ํ ์์ธ ์ฒ๋ฆฌ๋ก 422 ์ฒ๋ฆฌ
- api ๋ด์์ ๋ค๋ฅธ api๋ฅผ ํธ์ถํ ๋ ๋์ api ์๋ฒ์์ ํน์ ์๊ฐ๋์ ์๋ต์ ์ฃผ์ง ์๊ฑฐ๋ ์์ธ๋ฅผ ์ ๋ฌํ๋ ๊ฒฝ์ฐ ์์ธ๋ก ์ก์ 3ํ ์ฌ์๋๋ฅผ ๊ตฌ์ฑ
๊ฐ controller, service ๋ฑ์ ์๋น์ค ๋ ์ด์ด์์์ ๋ฐ์๋๋ ๋ค์ํ ์๋น์ค ์๋๋ฆฌ์ค์ ์์ธ ์ฒ๋ฆฌ ๊ตฌํ์ ์๋น์ค ํ์ง์ ๋์ฑ ๋์ฌ์ค ๊ฒ์ด๋ผ ์๊ฐ๋์ ์๊ฒฌ์ ๋์ํฉ๋๋ค.
3 Likes