日期:2014-05-20  浏览次数:20645 次

//请问一下为什么不能捕获到这个益出异常呢?
public   class   Ty
{
public   static   void   main(String   args[])
{
try
{
byte   i=128;
}
catch   (Exception   e)
{
System.out.println( "overflow ");
}

}
}
//请问一下为什么不能捕获到这个益出异常呢?

------解决方案--------------------
byte 是有符号的,当然不会异常了
------解决方案--------------------
不好意思,能说明白点吗,我刚开始学习java刚学到异常这一节.
------解决方案--------------------
128是个常量,是int类型的
而lz定义的i是byte类型的
把int类型赋值给byte类型的,这种赋值编译都不能通过
如果你写成byte i = (byte) 128;实际上只i存的值是-128。
int型的128是二进制 00000000 00000000 00000000 10000000,如果转换成byte,实际上就是取最后一个字节,即10000000,这实际上是byte型的-128。
这里根本就不会有异常抛出
------解决方案--------------------
1. 楼主充分利用论坛的方式对大家抢分太有帮助了

2. 楼主所使用的java书籍写得的确是太NB了,PF。。。PF。。。
------解决方案--------------------
编译都没过都 怎么可能出现异常
------解决方案--------------------
编译都没过都 怎么可能出现异常

------解决方案--------------------

编译都没过都 怎么可能出现异常