04-Java 异常

1、认识异常:异常是导致程序中断运行的一种指令流,如果不对异常进行正确处理,则可能导致程序的中断执行,造成不必要的损失。

  int a=10;

  int b=0;

  int temp=a/b;

  System.out.println(temp);

2、处理异常

  格式:try{    异常语句  }

        Catch(Exception e) { }

        Finally { 一定会执行的代码 }

3、常见异常:

(1)数组越界异常:ArrayIndexOutOfboundsException

(2)数字格式化异常:NumberFormatException

(3)算数异常:ArithmeticException

(4)空指针异常:NullPointerException

  class Exc{
      int a=10;
      int b=10;
  }
public static void main(String[] args) {
        int temp =0;
        Exc e=null;
        e=new Exc();
        try {
           temp=e.a/e.b;
          System.out.println(temp);
       } catch (NullPointerException e2) {
           System.out.println("空指针异常:"+e2);
       }catch (ArithmeticException e2) {
           System.out.println("算数异常:"+e2);
       }finally{
           System.out.println("程序退出。");
       }

结果: 1

程序退出。

把第三行注释掉:结果:空指针异常:java.lang.NullPointerException

程序退出。

把b=10改为0,结果是:

算数异常:java.lang.ArithmeticException: / by zero

程序退出。

4、throws关键字:

     在定义一个方法时,可以使用throws关键字声明,表示该方法不处理异常,抛给方法的调用者处理。

格式:public void tell ()  throws Exception {}

5、throw关键字:抛出一个异常,抛出的时候直接抛出异常类的实例化对象即可。

public static void main(String[] args) {
        try {
            throw new Exception("实例化异常对象");
        } catch (Exception e) {
            System.out.println(e);

结果:java.lang.Exception: 实例化异常对象

6、自定义异常:有些异常比较难找,这时自定义异常发挥作用。

直接继承Exception就可以完成自定义异常。

class MyException extends Exception{
    public MyException(String msg)  {
        super(msg);
    }
}

public class ExceptionDemo02 {
    public static void main(String[] args) {
        try {
            throw new MyException("自定义异常");
        } catch (MyException e) {
        System.out.println(e);

结果:com.jike.exc.MyException: 自定义异常

原文地址:https://www.cnblogs.com/shenxiaolin/p/5843340.html