using System;
class MainClass
{
static void Main()
{
try
{
// byte型の最大値+11を代入
uint a = byte.MaxValue + 10;
byte b;
// byte型の最大値(255)を表示
Console.WriteLine("byte型の最大値:" + byte.MaxValue);
/* uint型をbyte型に変換しオーバーフローさせつつも
* unchekcedキーワードを使用し例外を無視する*/
b = unchecked((byte)a);
/* オーバーフローが無視されるので255を超えた分は
* 0に戻って加算されるよって255+10=9 */
Console.WriteLine("byte型:255+10=" + b);
/* checkedキーワードを使用しオーバーフローの例外を
* スローする */
b = checked((byte)a);
Console.WriteLine(b);
}
// オーバーフローの例外を捕捉
catch (OverflowException error)
{
// 例外の原因の詳細情報を表示する
Console.WriteLine(error.Message);
}
finally
{
Console.WriteLine("終了");
}
}
}
0 コメント:
コメントを投稿