Java--异常处理

1.在运行遇到各种各样的异常,开发过程中语法错误和逻辑错误不是异常---继承Throwable根接口

  Java.lang.Throwable

           |------Error:错误,程序不进行处理

            |------Exception:异常,编写需要进行处理

异常分为:Error(JVM 内部的错误无法修改);在主程序 main(args)--栈溢出;堆空间内存溢出

exception:空间针访问,读取文件不存在和网络异常

 Java异常的处理:抛出异常的处理:.class 文件

Java中 SQLException,IOException,ClassNotFoundException+RuntimeException(运行时异常)

java 提供的异常处理抓抛异常:执行代码时,一旦出现异常,在异常代码处生成相对应的异常类型

处理异常第一种方式:try--Catch--finally:finally 不管是否出现异常总会执行

      Catch语句内部对异常对象的处理:自己输出;getMessage()--出现问题的地方  或者printStackTrace()---输出运行过程运行方式

     自动的抛出异常(e.printStackTrace() +e.getMessage) + 手动抛出 throw new Exception(“   ”)---抛出Throwable下的异常

 1.自定义异常类继承已有异常类
 2.提供一个序列号,重载多个构造器 手动抛出,出现异常在已有异常中并没有,自定义的异常

3.子类重写父类时候,子类抛出异常不能比父类大
 1 // 1.自定义异常类继承已有异常类
 2 // 2.提供一个序列号,重载的构造器
 3 public class MyException extends RuntimeException{
 4 
 5     static final long serialVersionUID = -7034897190745766939L;
 6 
 7     public MyException()
 8     {}
 9     
10     public MyException(String message)
11     {
12         super(message);
13     }

throw Vs throws: ****

throw y用于抛出异常手动抛出异常(异常的生成阶段)

throws:声明方法抛出各种异常类--在方法中对抛出异常进行声明(异常的处理方式)

throw--上流排污,throws---下流

 注意 finally方法在比抛出异常在前面,抛出异常只有被Catch捕获才能被打e.prinStackTrace()印输出:throw 抛出异常抛出到主程序才被Catch到中因此输出顺序在后面

下面:Catch捕获在finally前面,抛出的异常只有被捕获才能输出

 1 private void MethodA() {
 2         try{
 3             
 4             System.out.println("进入到A方法");
 5             throw new Exception("异常类型错误");
 6         }catch(Exception e)
 7         {
 8             System.out.println(e.getMessage());
 9         }
10         finally{
11             System.out.println("A 的finally");
12         }

原文地址:https://www.cnblogs.com/woainifanfan/p/6773072.html