[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