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

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

์ค„๋ฆฌ์•„๋„ ๋ช…๋ นํ˜• ์Šคํƒ€์ผ์˜ ์ผ๋ฐ˜์ ์ธ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๊ตฌ๋ฌธ์„ ์ œ๊ณตํ•œ๋‹ค.



์˜ˆ์™ธ ๋˜์ง€๊ธฐ: throw

์˜ˆ์™ธ๋ฅผ ๋˜์งˆ ๋•Œ๋Š” Exception์„ ์ƒ์†๋ฐ›๋Š” ์˜ˆ์™ธ ๊ฐ์ฒด๋“ค์„ ์ƒ์„ฑํ•ด์„œ, throw ํ•จ์ˆ˜๋กœ ์ „๋‹ฌํ•˜๋ฉด ๋œ๋‹ค.
๊ทธ ์ค‘ ํ•˜๋‚˜๊ฐ€ DomainError์ด๋‹ค. ์ด๊ฑด ์˜ˆ์™ธ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๋Š” ๋ฌธ์ž์—ด์„ ์ „๋‹ฌ๋ฐ›๋Š”๋‹ค.
๊ทธ๋ ‡๊ฒŒ ํ•ด์„œ ๋˜์ง€๋ฉด ์ด๋ ‡๊ฒŒ

ํ”„๋กœ๊ทธ๋žจ์ด ์ฃฝ์œผ๋ฉด์„œ ์˜ˆ์™ธ ๋ฉ”์„ธ์ง€์™€ ์˜ˆ์™ธ ์ •๋ณด๋“ค์„ ๋„์›Œ์ค€๋‹ค.

๊ทผ๋ฐ ์ €๋Ÿฌ๊ธฐ๋งŒ ํ•ด์„œ๋Š” ์˜ˆ์™ธ์‹œ์Šคํ…œ์„ ๋‘๋Š” ์˜๋ฏธ๊ฐ€ ์—†๋‹ค. ๋˜์ ธ์ง„ ์˜ˆ์™ธ๋ฅผ ์ธ์‹ํ•ด์„œ ์˜ค๋ฅ˜๋ฅผ ๊ณ ์ณ๋‚˜๊ฐ€์•ผ ํ•˜์ง€ ์•Š๊ฒ ๋Š”๊ฐ€



try-catch๋ฌธ

try-catch๋ฌธ์€ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ๊ทธ ์˜ˆ์™ธ ๊ฐ์ฒด๋ฅผ ๋ฐ›์•„์„œ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.
try๊ฐ€ ์˜ˆ์™ธ๊ฐ€ ์ž ์žฌ์ ์œผ๋กœ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„, catch๋Š” ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๊ฒฝ์šฐ ์ด๋™๋˜๋Š” ๋ถ€๋ถ„์ด๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ end๋กœ ๊ตฌ๋ฌธ์˜ ๋์„ ํ‘œ์‹œํ•œ๋‹ค.

์ด๋Ÿฐ ์‹์œผ๋กœ ์“ฐ๋ฉด ๋œ๋‹ค.

์ด๋ฒˆ์—” ํ”„๋กœ๊ทธ๋žจ์ด ํ„ฐ์ง€์ง€ ์•Š๊ณ , catch ์ด๋™ํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์ด ์ž˜ ์ข…๋ฃŒ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  catch ๋ผ์ธ์— ์ธ์ž๋ช…์„ ์จ๋„ฃ์œผ๋ฉด ๋˜์ ธ์ง„ ๊ฐ์ฒด๋ฅผ ๋ฐ›์•„์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฐ์ฒด์˜ ์ •๋ณด๋ฅผ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
๊ทผ๋ฐ ์ค„๋ฆฌ์•„์˜ catch ์ ˆ์€ ์ข€ ๋” ์ œํ•œ์ ์ธ ํŽธ์ด๋ผ์„œ, try๋ฌธ์—๋Š” ํ•˜๋‚˜์˜ catch์ ˆ๋งŒ์„ ๋ถ™์ผ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ์™ธํƒ€์ž…๋„ ๋ช…์‹œํ•  ์ˆ˜ ์—†๊ณ .



finally์ ˆ

์ด๊ฒƒ๋„ try๋ฌธ์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋…€์„์ด๋‹ค.
์ด๊ฒŒ ๋ฌด์–ธ๊ฐ€ ํ•˜๋ฉด, ์ด ์ ˆ์— ๋“ค์–ด์žˆ๋Š” ์‹๋“ค์€ ๋ฌด์กฐ๊ฑด ์‹คํ–‰๋œ๋‹ค.
๊ฐ‘์ž๊ธฐ ํ˜„์žฌ ํ•จ์ˆ˜๊ฐ€ ๋ฐ˜ํ™˜๋ผ์„œ ์ข…๋ฃŒ๋˜๋”๋ผ๋„ ์ข…๋ฃŒ๋˜๊ธฐ ์ „์— ์‹คํ–‰๋œ๋‹ค.
๊ทธ๋ž˜์„œ ์“ฐ๋˜ ์ž์›์˜ ๋ฐ˜ํ™˜์ด๋‚˜ ์ •๋ฆฌ ๋“ฑ์„ ํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ ์“ฐ๊ธฐ ์ข‹๋‹ค.

์ฝ”๋“œ๋ฅผ ๋ณด์ž.
์•„๋ž˜ ์ฝ”๋“œ์—์„  ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๊ธฐ๋งŒ ํ•˜๊ณ  ๋ฐ›์ง€ ์•Š์•„ ํ”„๋กœ๊ทธ๋žจ์ด ์ฃฝ๋Š”๋ฐ, ๊ทธ๋Ÿผ์—๋„ finally์ ˆ์˜ ๊ตฌ๋ฌธ์€ ์‹คํ–‰์ด ๋œ๋‹ค.

๊ทธ๋ ‡๋‹ค.

์•„ ๊ทธ๋ฆฌ๊ณ  ์œ„์—์„  ์•ˆ์ผ์ง€๋งŒ try๋ฌธ์—๋Š” catch์™€ finally๊ฐ€ ๋‘˜ ๋‹ค ๋“ค์–ด๊ฐˆ ์ˆ˜๋„ ์žˆ๋‹ค.


์ฐธ์กฐ
https://juliakorea.github.io/ko/latest/manual/control-flow/#man-loops-1