JAVA中的异常


异常:
    程序在运行期间,发生了不可预测的事件,它阻止了我们程序的正常运行!
    
异常处理机制:
    在我们的程序发生异常之后,代码能按照我们事先设计的顺序 继续执行!


异常的分类

  所有异常和错误的父类====》Throwable
  异常的分类:
   01.运行时异常  RuntimeException
   02.受查异常     CheckedException

  IOException  
  FileNotFoundException  文件没找到
  ArithMeticException   算术异常
  InputMismatchException   输入类型不匹配
  NullPointerException  空指针异常
  ClassNotFoundException  没有找到类
  ClassCastException     类型转换异常


异常和异常链的使用

异常的处理分为两种方式:
  01. try  catch   finally
  02.throw抛出异常, throws声明异常

 try
 01.不能单独使用,必须和catch/finally联合使用
 02.存放可能出现异常的代码
 03.如果try代码块中出现了异常,会去匹配catch代码块对应的异常类型,
         没有匹配的类型,直接进入finally
 catch
 01.可以有多个catch块,每个catch都能捕获一个异常
 02.多个catch块捕获的异常类型不允许重复
 03.多个catch块的异常类型 必须是 从小到大排列
 04.如果多个catch块都能匹配,默认使用第一个匹配的
 05.如果try中都没有发生异常,catch代码块被忽略
 06.每个代码块中的变量 都是 私有的
 
 finally
 01.无论代码是否发生异常,都会执行的代码块
 02.如果遇到了System.exit(0)或者System.exit(非0)不会执行finally
 03.如果try代码块中出现了 return  也是 先执行finally 之后再跳出方法
 04.后续关闭流,释放数据库连接资源
 
 
 
 throw抛出异常
 
  01.语法   throw  new  异常类型(异常信息)
  02.异常类型必须是Exception或者其子类
  03.一个throw只能 抛出一个异常
  04.只能出现在方法体内
  05.针对于抛出的异常  我们能使用两种方式解决
      001.try  catch   finally
      002.使用throws声明异常
  06.抛出异常的类型必须是 声明异常类型本身或者其子类
  
  
 throws声明异常
  01.语法  throws  异常类型1,异常类型2...
  02.定义在方法的参数列表之后,可以声明多个异常
  03.throws所在的方法不处理异常,方法的调用者去处理异常
  04.如果在main方法中使用throws,则是JVM来处理异常


异常链的使用
   把我们捕获的异常包装成一个新的异常,继续抛出!新异常中记录了异常的原始信息!
  便于我们找到异常的根本原因!
   


自定义异常
 01.异常类必须是Throwable的子类
 02.自定义异常类 继承 RuntimeException ,Exception
异常:
    程序在运行期间,发生了不可预测的事件,它阻止了我们程序的正常运行!
    
异常处理机制:
    在我们的程序发生异常之后,代码能按照我们事先设计的顺序 继续执行!


异常的分类

  所有异常和错误的父类====》Throwable
  异常的分类:
   01.运行时异常  RuntimeException
   02.受查异常     CheckedException

  IOException  
  FileNotFoundException  文件没找到
  ArithMeticException   算术异常
  InputMismatchException   输入类型不匹配
  NullPointerException  空指针异常
  ClassNotFoundException  没有找到类
  ClassCastException     类型转换异常


异常和异常链的使用

异常的处理分为两种方式:
  01. try  catch   finally
  02.throw抛出异常, throws声明异常

 try
 01.不能单独使用,必须和catch/finally联合使用
 02.存放可能出现异常的代码
 03.如果try代码块中出现了异常,会去匹配catch代码块对应的异常类型,
         没有匹配的类型,直接进入finally
 catch
 01.可以有多个catch块,每个catch都能捕获一个异常
 02.多个catch块捕获的异常类型不允许重复
 03.多个catch块的异常类型 必须是 从小到大排列
 04.如果多个catch块都能匹配,默认使用第一个匹配的
 05.如果try中都没有发生异常,catch代码块被忽略
 06.每个代码块中的变量 都是 私有的
 
 finally
 01.无论代码是否发生异常,都会执行的代码块
 02.如果遇到了System.exit(0)或者System.exit(非0)不会执行finally
 03.如果try代码块中出现了 return  也是 先执行finally 之后再跳出方法
 04.后续关闭流,释放数据库连接资源
 
 
 
 throw抛出异常
 
  01.语法   throw  new  异常类型(异常信息)
  02.异常类型必须是Exception或者其子类
  03.一个throw只能 抛出一个异常
  04.只能出现在方法体内
  05.针对于抛出的异常  我们能使用两种方式解决
      001.try  catch   finally
      002.使用throws声明异常
  06.抛出异常的类型必须是 声明异常类型本身或者其子类
  
  
 throws声明异常
  01.语法  throws  异常类型1,异常类型2...
  02.定义在方法的参数列表之后,可以声明多个异常
  03.throws所在的方法不处理异常,方法的调用者去处理异常
  04.如果在main方法中使用throws,则是JVM来处理异常


异常链的使用
   把我们捕获的异常包装成一个新的异常,继续抛出!新异常中记录了异常的原始信息!
  便于我们找到异常的根本原因!
   


自定义异常
 01.异常类必须是Throwable的子类
 02.自定义异常类 继承 RuntimeException ,Exception

原文地址:https://www.cnblogs.com/WillimTUrner/p/8042715.html