[Elixir] ์˜ˆ์™ธ์ฒ˜๋ฆฌ

[์›๋ณธ ๋งํฌ]

์—˜๋ฆญ์„œ๋„ ์ผ๋ฐ˜์ ์ธ ๋ช…๋ นํ˜• ์–ธ์–ด๋“ค๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๊ณ  ๋ฐ›๋Š” try-catch ์Šคํƒ€์ผ์˜ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฌธ์„ ์ œ๊ณตํ•œ๋‹ค.


์˜ˆ์™ธ ๋˜์ง€๊ธฐ
์˜ˆ์™ธ๋ฅผ ๋˜์ง€๋ ค๋ฉด ๊ทธ๋ƒฅ raise์— ์˜ˆ์™ธ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.
์—ฌ๊ธฐ์„œ๋Š” ๊ทธ๋ƒฅ ๋ฌธ์ž์—ด๋งŒ ๋„ฃ์—ˆ๋‹ค. image

image

image


์˜ˆ์™ธํƒ€์ž… ์ •์˜ํ•˜๊ธฐ
๊ทธ๋ƒฅ ๋Œ€์ถฉ ์ฐ์–ด๋ณด๋ ค๋ฉด ๋ฌธ์ž์—ด๋งŒ ๋„ฃ์–ด๋†”๋„ ๋˜์ง€๋งŒ, ์˜ˆ์™ธ๊นŒ์ง€ ์น˜๋ฐ€ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์˜ˆ์™ธํƒ€์ž…์„ ์ •์˜ํ•ด์„œ ์“ฐ๋ฉด ๋œ๋‹ค.

์‚ฌ์šฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜๋‹ค. ๋ชจ๋“ˆ ์•ˆ์— defexception์œผ๋กœย ย ย  ์˜ˆ์™ธ ํ•จ์ˆ˜ message๋ฅผ ์ •์˜ํ•˜๋ฉด ๋œ๋‹ค.
์™œ ๊ตณ์ด ์ด๋Ÿฐ๊ฑฐ๊นŒ์ง€ ํ‚ค์›Œ๋“œ๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค์—ˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค... image

image

image


์˜ˆ์™ธ ๋ฐ›๊ธฐ: try-rescue
์ €๋Œ€๋กœ ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๊ธฐ๋งŒ ํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ๋”” ์ฃฝ์–ด๋ฒ„๋ ค์„œ ์˜๋ฏธ๊ฐ€ ์—†๋‹ค.
๋‹น์—ฐํžˆ ๋ฐ›์•„์„œ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค˜์•ผ ํ•˜๊ณ .. ๊ทธ๋Ÿด ๋•Œ ์“ฐ๋Š” ๊ฒƒ์ด try-rescue ๊ตฌ๋ฌธ์ด๋‹ค.

try do ๊ตฌ๋ฌธ์— ์˜ˆ์™ธ๊ฐ€ ๋œฐ์ˆ˜์žˆ๋Š” ๋ถ€๋ถ„์„ ๊ฒฉ๋ฆฌํ•ด๋†“๊ณ , rescue ๋ถ€๋ถ„์— ์˜ˆ์™ธ๋ฐœ์ƒ์‹œ์˜ ๋กœ์ง์„ ์ •์˜ํ•œ๋‹ค. image

image ํ•˜๋‚˜๋งŒ ํ•ด๋„ ๋˜์ง€๋งŒ, ์œ„์™€๊ฐ™์ด ์—ฌ๋Ÿฌ๊ฐœ์˜ ์˜ค๋ฅ˜ํƒ€์ž…์œผ๋กœ ๋ถ„๊ธฐ๋ฅผ ๊ฑธ ์ˆ˜๋„ ์žˆ๋‹ค.
e in์€ ์˜ˆ์™ธ๊ฐ’์„ e๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋ฐ›๊ฒ ๋‹ค๋Š” ๊ฑด๋ฐ, ๊ฐ’์„ ์“ฐ์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๋ฉด ์ƒ๋žตํ•ด๋„ ๋œ๋‹ค.
in ํƒ€์ž…๋„ ํƒ€์ž…์„ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ƒ๋žต๊ฐ€๋Šฅํ•˜๋‹ค.

์ด์ œ ์ €๋Ÿฌ๋ฉด image

image ์ •์ƒ์ ์œผ๋กœ ๋๊นŒ์ง€ ๋‹ค ๋™์ž‘ํ•  ๊ฒƒ์ด๋‹ค.


image



์ฐธ์กฐ
https://www.tutorialspoint.com/elixir/elixir_errors_handling.htm