KO CSharp Exceptions - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki
ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
์์ธ, try/catch/finally ๋ฐ throw
try๋ ๋ณดํธ ์์ญ์ ์ ํํ๊ณ , catch๋ ์ ์ ํ ์์ธ๋ฅผ ์ฒ๋ฆฌํ๊ณ , finally๋ ์ข
๋ฃ ์ ์ ๋ฆฌํฉ๋๋ค. ํํฐ when๋ ํธ๋ค๋ฌ๋ฅผ ์ ํํฉ๋๋ค. throw;๋ ์๋ ์คํ์ ๋ณด์กดํ๋ฉด์ ํ์ฌ ์์ธ๋ฅผ ๋ค์ ๋ฐ์์ํต๋๋ค. throw exception; ์์ ๋ถ๋ถ์ด ๋ณ๊ฒฝ๋์์ต๋๋ค.
๊ฐ๋จํ ์์ (Example.cs)
์ด ์์ ๋ฅผ Example.cs๋ก ๋ฐ๋ก ์ ์ฅํ๊ณ ์ด ํ์ด์ง์ ๋ค๋ฅธ ์์ ์ ๋
๋ฆฝ์ ์ผ๋ก ์คํํ์ธ์.
Example.cs:
// PROJECT-EXAMPLE
try { int.Parse("not a number"); }
catch (System.FormatException) { System.Console.WriteLine("Invalid"); }
๊ฒฐ๊ณผ:
Invalid
try
{
int value = int.Parse("not a number");
UO.Print(value.ToString());
}
catch (FormatException error)
{
UO.Print(error.Message);
}
finally
{
// Dispose resources owned by this scope.
}
int RequirePositive(int value)
{
if (value <= 0) throw new ArgumentOutOfRangeException(nameof(value));
return value;
}
UO.Print(RequirePositive(3).ToString());
์คํฌ๋ฆฝํธ๋ฅผ ์ข
๋ฃํ ์๋ ์์ด ์ทจ์๋ฅผ ๊ฐ๋ก์ฑ์ง ๋ง์ธ์. ์ฒญ์๋ ์์ฒด ์์์ ํ๋ณดํด์ผ ํฉ๋๋ค. finally์ ๋ํ ์ทจ์๋ ๊ฒ์ ํธ์ถ๋ก ์ธํด ์์ธ๊ฐ ๋ค์ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ปดํ์ผ ์ค๋ฅ๋ ์คํ ์ ์ ๊ฐ์ง๋๋ฉฐ ์คํ ์ฝ๋ ๋ด try ์ ์์ ์ธ ์ค๋ฅ๊ฐ ์๋๋๋ค.
๊ณต์ ๋ฌธ์: ์์ธ, try/catch/finally ๋ฐ throw - Microsoft Learn.