.net ์ BCL ํน์ ์ฃผ์ ํ๋ ์์ํฌ๋ค์ ๊ตฌํ์ ๋ณด๋ฉด ์ผ์ข ์ ํจํด ๊ฐ์ ๊ฒ๋ค์ด ๋์ ๋๋๋ค.
๋์ ๋๊ฑฐ๋, ๋ฐ๋ผํด๋ด์งํ ํจํด๋ค์ ์ ๋ฆฌํ๋ ์ฌ๋ก๊ทธ์ ๋๋ค.
return Nullable vs throw Exception
๋ฉ์๋๋ฅผ ์์ฑํ๋ค ๋ณด๋ฉด, ๋ฐํํ์ nullable ํ์ ์ผ๋ก ํ ๊ฒ์ธ์ง, exception ์ throw ํ ๊ฒ์ด์ง ์ ๋ป ๊ฒฐ์ ํ๊ธฐ ๊ณค๋ํ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
๋ท๋ท์ ์ด๋ฐ ๊ฒฝ์ฐ, ๋ฉ์๋ ์ค๋ฒ๋ก๋ ๋ณด๋ค๋ ์๋ณ์๋ก ๊ตฌ๋ถ๋๋ ๋ฉ์๋ ์์ ์ ๊ณตํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
non-nullable return or thow ๋ฒ์
๋ฉ์๋๋ non-nullable ํ์
์ ๋ฐํํ๊ณ , ๋ด๋ถ์ exception ์ ์ ๋ฐํ๋ ์ฝ๋๊ฐ ์์ต๋๋ค.
์ด ๊ฒฝ์ฐ ๋ฉ์๋ ์ด๋ฆ์ โRequiredโ ๋ผ๋ ๋จ์ด๊ฐ ๋ค์ด๊ฐ๋๋ค.
Far GetRequiredFar
์ฐ๋ฆฌ๊ฐ ์ด ํจํด์ ์ฑํํ๋ ๊ฒฝ์ฐ, ์์ธ๋ฅผ ๋ ๊ฐ์ง๋ก ์ด์ฉํ ์ ์์ต๋๋ค.
- ์ฝ๋ ํ๋ฆ ์ ์์ธ๊ฐ ์์ ์ ์๋ค๊ณ ํ๋จํ ๊ฒฝ์ฐ
๋ฏธ์ฒ ์๊ฐํ์ง ๋ชปํ ๋ถ๋ถ์ ์บ์นํ์ฌ, ์์ฑ๋๋ฅผ ๋์ ๋๋ค. - ์ธ๋ถ ์ฝ๋์์์ ์์ธ ๋ฐ์
์ธ๋ถ ์ฝ๋์ ์ฌ์ฉ๋ฒ๊ณผ ์ฃผ์์ ์ ๋ค์ ์ดํ๋๋ค.
nullable return and no throw ๋ฒ์
๋ฉ์๋๋ nullable ํ์ ์ ๋ฐํํ๊ณ , ๋ด๋ถ์์ exception ์ ์ฒ๋ฆฌํ์ฌ ์ธ๋ถ๋ก ํ์ถํ์ง ์๋๋ฐ, Requried๊ฐ ์๋ ๋ฉ์๋ ์ด๋ฆ์ด ์ฌ์ฉ๋ฉ๋๋ค.
Far? GetFar
์ด ํจํด์ ์ฑํํ ๋๋ ๊ฐ๊ธ์ ๋ชจ๋ ์์ธ๋ฅผ ์ต๋๋ฌ์ผ ํฉ๋๋ค.
ํด๋ผ์ด์ธํธ ์ฝ๋ ์
์ฅ์์๋ null ๊ฒ์ฌ๋ง ํด๋ ๋๊ธฐ์ ๋ณด๋ค ๊ฐํธํ์ง๋ง, ๋ด๋ถ ๊ตฌํ ์, ๋ชจ๋ ์์ธ์ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ ๋ํ ํ์ ์ด ์์ด์ผ ํฉ๋๋ค.