๋ณด๋ฉด ์ด๋ฐ try catch ๊ตฌ๋ฌธ์ ํ๋ก๊ทธ๋จ์ด ์์์น ๋ชปํ ์์ธ์ ๋ํด์ ์์ ์ฑ์ ๋ํ์ฃผ๋ ์ฝ๋๋ก ๊ตฌ์ฑ์ด ๋์ด์๋๋ผ๊ณ
๊ทผ๋ฐ ๋๋ ์ด๊ฑธ ๊ฒ์ ๋ด ํ๋์ ๋ก์ง์ผ๋ก์ ์ฌ์ฉํ๊ณ ์ถ์๋ฐ ๊ด์ฐฎ์๊ฑด๊ฐ?ย ย
์๋ฅผ ๋ค์ด์ Unitask์์ ํ ํฐ์ ์ทจ์์ํค๋ฉด ์์ธ๊ฐ ๋ฐ์๋๋๋ฐย ์ด๊ฑธ ์บ์นํด์ย ๊ฒ์ ๋ด์์ ํ๋ ์ทจ์ํ์ ๋ ์ด๊ธฐํ ์์ผ์ฃผ๋ย ๋๋์ผ๋ก ๋ง๋ค๋ ค๊ณ ํ๋๋ฐ ๋ฌธ์ ์๊ฒ ์ง?
ย
์ ๋ํ์คํฌ์ ์ทจ์ ๊ธฐ๋ฅ์์๋...
https://rito15.github.io/posts/cs-if-vs-try-performance/๋์
๊ณตํต์ ์ธ ์ฌ์ค์try-catch๋ฅผ ํตํด ์์ธ๋ฅผ ํธ๋ค๋งํ๊ฒ ๋๋ฉด๋ฌด์กฐ๊ฑด if๋ณด๋ค ์ฑ๋ฅ ์๋ชจ๊ฐ ํฌ๋ค๋ ์ ์ด๋ค.try-catch๋ ์์ธ ๋ฐ์ ์ง์ ์ ์คํ์ ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ๊ฐ์๋ชจ๋ ์ถ์ ํ๊ณ ๊ธฐ๋กํ๊ฒ ๋๋๋ฐ,์ด ๊ณผ์ ์์ ์ฑ๋ฅ ์๋ชจ๊ฐ ํฌ๊ฒ ๋ฐ์ํ๋ค๋ ๊ฒ์ด๋ค.
์ทจ์๊ธฐ๋ฅ? ํ ํฐ ์ทจ์ ๋งํ๋๊ฑฐ์ผ?
unitask cancel์ํค๊ณ ๊ฒฐ๊ณผ์ฒดํฌํ๋ ์ฉ๋๋ผ๋ฉด ์์ธ์ฒ๋ฆฌ ๋์ supresscancellationthrow ์ฌ์ฉํ์๋ฉด ๋ ๋ฏ. cancel ์ฌ๋ถ๋ ๋ฐํ๊ฐ์์ผ๋ฉด ๋ฐํ๊ฐ ๋ฆฌํดํจ.
์์ ํฐ ๊ฐ๋ฅด์นจ ์ป๊ณ ๊ฐ๋๋ค.
ํฅ๋ฏธ๋กญ๋ค. ๊ทผ๋ฐ ๊ถ๊ธํ๊ฒ OperationCanceledException๋ฅผ ์ฒ๋ฆฌ์ํ๊ณ ๊ทธ๋ฅ ๋์ด์ ์์ธ๋ฅผ ์์ ํธ์ถ ๋ฉ์๋์ ์ ํ ์ํค๋๊ฑด ๋น์ ์์ ์ธ ํ๋์ธ๊ฐ? ์ดํ๋ฆฌ์ผ์ด์ ์ ์ํฅ์ด๋ ์์๊น...? ๋ฐํ๊ฐ ํ์์๊ณ ๊ทธ๋ฅ ์ทจ์ํ ํฐ ๋ฐํ ์ ๋ฉ์๋ ์ ์ฒด๋ฅผ ์ข ๋ฃ ์ํค๊ธฐ๋ง ํ๋ฉด ๋๋๋ฐ ์์ธ์ฒ๋ฆฌ ์ํ๊ณ ๊ทธ๋ฅ ๋ ๋ฌ๋ ๋๋๊ฑด๊ฐ ์ถ๋ค...
cancel ์ํค๋ฉด ํด๋น await ์ค์ธ ๋ฉ์๋ ์ ๋ถ ์ข ๋ฃ๋จ. cancel ์ํจ ๋ค์ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ํจ์์์ ์งํํ ๊ฒ ์๋๋ฉด ๋ฐ๋ก ์์ธ์ฒ๋ฆฌ ํด์ค ํ์๊ฐ ์์.
์ฑ๋ฅ์ด์ ์ปค์ ๋ณ๋ก์