异常

(1)异常的产生原因

异常处理:就是指程序出现问题时依然可以正确的执行完程序。

(2)异常处理格式

try

{

 可能出现异常的语句

}catch(异常类  异常对象)

{

 异常处理

}

 

try{}catch(){}finally{}

(3)异常

ArithmeticException 表示数学异常,及当被除数为0时出现的异常。

通过异常处理可以控制程序的正确完结。

(4)异常处理流程

java中,每当程序中出现了异常,实际上都是产生了一个异常类的实例化对象,这种处理格式实际上非常类似方法传参,只要参数类型匹配了,则就可以使用此catch进行处理。

实际上异常处理的最大父类:Throwable,但是一般开发中不会使用此种方式处理,因为其下有两个子类:

ErrorError一般表示JVM错误,与程序无关。

Exception:一般指的是程序中的错误,一般开发中如果要想进行程序的处理,基本用此类表示。

一般来讲在程序捕获的时候不要出现Throwable,因为表示的范围太大了。

捕获更细的异常要放在捕获更粗的异常之前

 

 

 

(5)throws关键字

throws关键字表示在方法中不处理异常,而交给被调用处处理异常。

如果在主方法处使用了throws关键字的话,则所有的异常交给JVM进行处理

(6)throw关键字

在程序中可以使用throw关键字人为地抛出一个异常。

 

 

RuntimeException

public  static  int  parseInt(String  s)throws  NumberFormatException

其中NumberFormatExceptionRuntimeException的子类,那么也就是说只要是RuntimeException的异常对象,虽然使用了throws,但是在程序中也可以不使用try......catch进行处理。

(2)自定义异常

一个类只要继承异常则就成为异常类。

class MyException extends Exception{ // 自定义异常

       public MyException(String msg){

              super(msg) ;

       }

};

public class ExceptionDemo13{

       public static void main(String args[]){

              try{

                     throw  new MyException("自定义异常。") ;

              }catch(Exception e){

                     e.printStackTrace() ;

              }

       }

};

(3)assert关键字

assert关键字表示断言,判断某值是否是

public class ExceptionDemo14{

       public static void main(String args[]){

              int i = 10 ;

              assert i==110:"值错误!" ;///其中"值错误"是自己定义的

       }

};

如果要想验证程序,则需要在执行时加入参数

java  -ea  ExceptionDemo14

原文地址:https://www.cnblogs.com/jinzhengquan/p/1941542.html