java 异常

在java程序的编写中异常是常见的也是程序员面临最大的问题,java中的异常有两种,一种是错误(Error)是硬件上的问题比如文件无法找到等等;第二种是异常(exception)主要是程序在运行的时候产生的错误。通常情况下在抛出异常时的信息里面从上往下数第一行自己写的代码为异常的地方。

一般情况下方法结束的方式有三种:一是代码正确的执行完毕。

二是遇到了return语句时就结束;

三是方法里面有异常,没有处理导致程序崩溃:

Thorowable是所有异常和错误的父类

异常处理的三个方法:一是捕获这个异常不让它沿着调用栈继续向下抛

                            二是捕获这个异常并继续向下抛

                           三是不捕获直接让程序崩溃。

在捕获异常时通常用try  catch   finally这三个关键字,在使用中不能单独使用必须使用try语句。

try   catch语句块:

try{//可能会产生的语句块}catch(//声明一个引用){

执行异常的语句块}      在整个过程中如果有异常那么就执行异常的语句块   如果没有异常那么久执行可能会产生的语句块   直接跳过catch语句块

finally在使用时必须抛出异常无论是把它放在那里它都会执行,只有system.next();可以终止try  finally 语句。

在catch语句块和finally语句块里面如果没有继承关系那么就会按顺序执行,有继承关系的话就会如果父类在前那么子类就不会被捕捉

在执行时就执行父类不执行子类    所以在使用时子类要写在前面  父类写在后面   通常情况下finally语句写在最后。所以finally一般是在线程关闭资源清理流以及连接关闭使用它

throw后面跟异常对象写在方法体当中而throws是写在方法名的后面可以跟随多个异常的语句

throw和throws的最大区别是throw在执行是一定有异常抛出但是throws不一定抛出异常   

语法规则:访问修饰符   可选修饰符   返回类型  方法名(型参列表   )throws  抛出异常类型

throws在执行和使用时可以将异常传递个其子类  而子类可以继续的向下传递,其子类在继承父类时子类抛出的异常不能比父类多

自定义异常:一是创建一个类继承exception;

                       二是添加构造方法和普通方法:

                       三是在任意一个方法中抛出异常:

                       四是在另一个方法中捕获并处理异常;

只要一个类继承类exception的话那么这个类就是异常类

原文地址:https://www.cnblogs.com/zacy110/p/5251746.html