[Scala] ์์ธ์ฒ๋ฆฌ
์ค์นผ๋ผ๋ ์๋ฐ์ ๋ง์ฐฌ๊ฐ์ง๋ก, ์์ธ์ฒ๋ฆฌ ๊ตฌ๋ฌธ์ ์ ๊ณตํ๋ค.
๊ทธ๋ฆฌ๊ณ ์์ธ์ catch๋ฅผ ๊ฐ์ ํ๋ checked ์์ธ๋ ์๊ณ , unchecked ์์ธ๋ง ์กด์ฌํ๋ค.
try-catch๋ฌธ
๊ฐ์ฅ ๋์ค์ ์ด๊ณ ์ผ๋ฐ์ ์ธ ์์ธ์ฒ๋ฆฌ๋ฐฉ์์ด๋ค.
๊ตฌ๋ฌธ ํ์์ ๋์ถฉ ์ด๋ ๋ค.
try
{ **
**ย ย ย /์์ธ๊ฐ ๋์ ธ์ง ์ ์๋ ๊ตฌ๋ฌธ.../ **
}
catch
{
**ย ย ย case ๋ณ์๋ช
:์์ธํ์
1 => ๊ตฌ๋ฌธ1
**ย ย ย ...**
**ย ย ย case ๋ณ์๋ช
:์์ธํ์
N => ๊ตฌ๋ฌธN**
}
finally //์ด ๊ตฌ๋ฌธ์ ์๋ต๊ฐ๋ฅํจ
{
**ย ย ย /์์ธ์ฒ๋ฆฌ ์ข
๋ฃ์ ์ํํ ๊ตฌ๋ฌธ/**
}
์์ธ ๋์ง๋๊ฑด throw๋ค.
์๋๋ ๊ฐ๋จํ ์์๋ค.


2๊ฐ ์ด์๋ ์ด๋ ๊ฒ ๊ตฌ๋ถ ๊ฐ๋ฅํ๋ค.


try-match๋ฌธ
์ด๊ฑด ๋ฌธ๋ฒ์์๊ฐ ์๋๋ผ ์ด๋ป๊ฒ ํ์
์ผ๋ก ์ ๊ตฌํํ ๊ฒ์ธ๋ฏํ๋ค.
๊ทธ๋์ scala.util ํจํค์ง์ Try, Failure, Success๋ผ๋ ๋
์์ ๊ฐ๋ค์จ์ผํ๋ค.
๊ฝค ์ ๊ธฐํ๋ค... match๋ฌธ ์ธ์๋ฅผ ์ ์์ผ๋ก ๋ฐ๋ ํ๋๋, ์ด๋ฐ๊ฑฐ๋๋ฌธ์ ํด๋์๊ฒ๊ฐ๋ค.
ํ์์ด ์ ํด์ ธ์๋๊ฑด ์๋์ง๋ง, ๋์ถฉ ์ด๋ ๊ฒ ์ฐ๊ฒ๋๋ค.
Try
{ **
**ย ย ย /์์ธ๋ฐ์ ๊ฐ๋ฅํ ๊ตฌ๋ฌธ/
}
match
{
**ย ย ย case Success(_) => /์ฑ๊ณต ๊ตฌ๋ฌธ/**
**ย ย ย case Failure(๋ณ์๋ช
) => /์์ธ๊ตฌ๋ฌธ/**
}
๊ฐ๋จํ ์์๋ค.


์ฌ๋ฌ ์์ธํ์
์ ํธ๋ค๋งํ๊ณ ์ถ๋ค๋ฉด ๋งค์นญ๋ฌธ์ ์ค์ฒฉํ๋ฉด ๋๋ค.


์ฐธ์กฐ
https://knight76.tistory.com/m/entry/scala-trycatchTrymatchEither