public class Ty
{
public static void main(String args[])
{
try
{
byte i=128;
}
catch (Exception e)
{
System.out.println("overflow");
}
}
}
//请问一下为什么不能捕获到这个益出异常呢?
{
public static void main(String args[])
{
try
{
byte i=128;
}
catch (Exception e)
{
System.out.println("overflow");
}
}
}
//请问一下为什么不能捕获到这个益出异常呢?
而lz定义的i是byte类型的
把int类型赋值给byte类型的,这种赋值编译都不能通过
如果你写成byte i = (byte) 128;实际上只i存的值是-128。
int型的128是二进制 00000000 00000000 00000000 10000000,如果转换成byte,实际上就是取最后一个字节,即10000000,这实际上是byte型的-128。
这里根本就不会有异常抛出。