------- android培训、java培训、期待与您交流! ----------
Throwable 类是 Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能
通过 Java 虚拟机或者 Java
throw
语句抛出。类似地,只有此类或其子类之一才可以是catch
子句中的参数类型。两个子类的实例,
Error
和Exception
,通常用于指示发生了异常情况。throws,throw,try,catch,finally,他们分别代表的意思是
(1)throws 关键字用于在方法中抛出异常,把代码中的异常交给上级去出理,自己不处理;
(2)throw 关键字用于在方法中发生错误时抛出具体的异常,如果是运行期异常则在该方法定义时不需要throws 关键字抛出异常;反之,就要抛出异常的具体的名字;
(3)try,catch,finally这三个关键字不能单独使用,必须配合使用,组合是
1)try{
//
保护区代码
}catch(Exception e){// catch扑捉的异常的具体名称,他们的祖父类是Throwable。Exception是所有异常的父类
发生异常时的处理
}
2)try{
保护区代码
}finally{ //finally区域中的代码总会执行
一般是用来关闭数据源链接的
}
3) try{
保护区代码
}catch(Exception e){
发生异常时的处理
}finally{ //finally区域中的代码总会执行
一般是用来关闭数据源链接的
}
(4)在try中是不可以抛出异常的
一个不错的finally知识点: 如果直接打印结果结果是多少?如果把注释去掉结果又是多少?为什么呢?
class Test2 {
public static void main(String[] args) {
System.out.println(new Test2().test());;
}
static int test()
{
int x = 1;
try
{
return x;
}
finally
{
++x;
// return x;
}
}
}
很奇怪吧,第一次打印的结果是1,第二次打印的结果是2;
这是因为finally里的代码总是要执行的,当第一次碰到return时,返回的x其实被存放在一个临时的栈内存中,当运行完
finally时,然后主函数在通过内部方法来返回第一次的return值。
当主函数碰到return 语句就会返回,但由于finally里面的代码总会执行,而且这里面多了个return语句,所以程序会放弃第一次return的标记,而返回finally区域中的x的值
------- android培训、java培训、期待与您交流! ----------