62 lines
820 B
C#
62 lines
820 B
C#
|
using System;
|
||
|
|
||
|
class X {
|
||
|
public static int Main()
|
||
|
{
|
||
|
if (! Test1 ()) return 1;
|
||
|
if (! Test2 ()) return 2;
|
||
|
if (! Test3 ()) return 3;
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
static bool Test1 ()
|
||
|
{
|
||
|
byte num1 = 105;
|
||
|
byte num2 = 150;
|
||
|
|
||
|
// should generate OverflowException
|
||
|
try {
|
||
|
checked {
|
||
|
byte sum = (byte) (num1 - num2);
|
||
|
}
|
||
|
|
||
|
return false;
|
||
|
} catch (OverflowException) {
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
static bool Test2 ()
|
||
|
{
|
||
|
long l = long.MinValue;
|
||
|
|
||
|
// should generate OverflowException
|
||
|
try {
|
||
|
checked {
|
||
|
l = - l;
|
||
|
}
|
||
|
|
||
|
return false;
|
||
|
} catch (OverflowException) {
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
static bool Test3 ()
|
||
|
{
|
||
|
int i = int.MinValue;
|
||
|
|
||
|
// should generate OverflowException
|
||
|
try {
|
||
|
checked {
|
||
|
i = - i;
|
||
|
}
|
||
|
|
||
|
return false;
|
||
|
} catch (OverflowException) {
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
}
|