极速网站
申请会员 文章投稿 ACCP教程网公告:
搜索: 您的位置主页>图文教程>java资源>

5.4 java异常类和异常接口

2008-04-16 20:27:04 来源: 作者: 收藏本页 点击:

exceptions类
派生出许多子类
每一个类代表一个错误条件。
异常对象的可以调用方法。
throwable类中的方法getmessage和toString.
Exception->throwable->getMessage->toString->printStackTrace
division()throws Exception
e.throw抛出异常,给上一级调用时候显示异常。
打印异常发生的轨迹,终止程序的运行。测试方法用。
捕获异常是需要对应抛出异常。需要声明异常类型。
throws声明抛出异常
throw抛出异常
try监听
catch捕获
可以有多个catch语句,捕获多个异常。
抛出的异常类型必须和捕获的异常类型匹配。
所有异常类都是从Exception类派生出来的,要把具体的异常类
放在前面捕获。
RuntimeException 代表程序编写时的一些错误bug
   ->ArithmeticException
->NullPointerException
->IndexOutOfBoundsException
      (自动处理异常类型)

编写者:函数参数是对象。
使用者:传参空引用,
需要显示捕获或抛出。
除了Runtime类异常,编译器都会强制要求去捕获。
public int division(int a,int b) throws Exception
{
try
{
   return a/b;
}
catch(ArithmeticException e)
{
   e.printStackTrace();
   throw new Exception("can't");
   throw e;
}
}
自定义异常类型类
class DivisorIsMinusException extends Exception
{
DivisorIsMinusException(String str)
{
   super(str);
}
}
调用
if(a<0)
   throw new DivisorIsMinusException("minus");
....
可以同时声明抛出多个异常
public int division(int a,int b) throws Exception,DivisorIsMinusException
{
try
{}
catch(Exception e)
{}
catch(DivisorIsMinusException ex)
{}
}
......
finally语句代码
finally
{
......
}
网络连接时,断开要在后面释放资源,数据库读取时候异常,要关闭数据库释放连接资源,
不管是否异常,资源始终要释放的。
System.exist();强制终止。finally不运行。
如果基类抛出多个异常
那么派生类 覆盖方法抛出相同异常,异常类的派生类。
派生类不能抛出新的异常类型。
构造方法例外(本身不被继承)。
子类有新的异常,但是调用方法时,子类对象为参数,那么异常不能被处理。
子类方法抛出的异常范围要小于父类的方法抛出的异常的范围。
在方法声明的时候,声明一个不会抛出的异常,这样调用方法的时候就要处理。
多用于抽象基类和接口当中。
abstract base class和interface




标签:
评论总数:0 [ 发布评论 ] 网友评论
关于我们 - 版权声明 - RSS订阅 - 网站地图 - 网站帮助 成都水货手机网