zoukankan      html  css  js  c++  java
  • 2020.12.08,异常

    异常概念
    java编程中,异常本身就是一个类,产生异常是创建异常对象,并抛出异常,Java中JVM处理异常就是直接中断程序。
    如果语法错误,那么编译都不会通过,吗没有产生.class文件,所以会在JVM中运行。所以不会出现异常
    |
    异常体系
    异常其实就是帮助我们找到程序出现的问题。
    异常的根类:java.long.Throwable
    异常的子类:java.long.Error和java.long.Exception,平常说的是Exception(异常父类)
    |
    Exception:异常,能通过代码来改变
    1.RuntiomException:运行异常

    • 空指针异常:NullPointException
    • 类型转换异常:ClassCasException
    • 下标越界异常:IndexOutBoundsException
    • 元素找不到异常:NoSuchElementFreeption
    • 类型转换异常:IllegeArgunFrecepyion
      2.IOException
    • 文件找不到一场:FileNotFoundException
      |||||||||||||||||||||||||
      |||||||||||||||||||||||||
      |||||||||||||||||||||||||
      Error异常:严重错误了奥,无法通过修改代码来改变
      1.虚拟机异常:VirtualWachiaeError
    • 内存溢出:outofMenmooryError
    • 栈溢出:stackOverFlorError
      |||||||||||||||||||||||
      |||||||||||||||||||||||
      |||||||||||||||||||||||
      异常处理:throw
      java处理五个关键字:try-----catch----finally----throw----throws
      |
      抛出异常:一般是用来检验传入的参数是否正确
      当我们在编写程序的时候,必须考虑是否会出现异常,如果传入的参数不符合要求就抛出异常
      异常抛出步骤
      1.创建异常,封装一些提示信息(信息自己编写)
      2.需要将异常对象告诉调用者,通过关键字【throw】抛出一个异常对象,throw一般用在方法内部,用于抛出异常并结束当前方法,整个程序来说不会停止。
      格式:throw new 异常类型(自己写的异常信息)
      |
      查看对象是不是null方法
      public static T requireNonNull(T obj,"如果对象为null,异常就会输出后面的那一句话"),查看指定对象是不是null
      ||||||||||||||||||||
      ||||||||||||||||||||
      ||||||||||||||||||||
      声明异常处理方式:throws
      声明异常:把问题表示出来,报告给调用者,显示告诉你(变异期间出现),如果方法内部有异常通过throw跑出一个编译器异常,有没有通过捕获处理(try....catch),必须就通过throws进行声明,让调用者处理。
      关键字:【throws】,运用方法声明,用于表示不处理异常,放到方法上,谁调用这个方法谁就必须处理这个方法
      格式:修饰符 返回值类型 方法名(参数列表) throws 异常类型1,异常类型2,.....{}
      |||||||||||||||||||||
      |||||||||||||||||||||
      |||||||||||||||||||||
      捕获异常(try---catch)
      如果出现异常就会立刻终止程序
      1.如果使用throws关键字这种声明的处理,会很危险,出现异常不会处理异常直接终止
      2.在方法中使用try---catch,语句来处理异常,发现异常之后就会处理掉异常,程序还是会接着走,Java中他对异常进行捕获,捕获之后对异常进行处理
      格式:一般来说try和catch连用的
      try{
      //内部包含可能出现异常的错误
      }catch(异常类型 e){
      //处理异常代码
      }
      ||||||||||||||||||||||
      ||||||||||||||||||||||
      ||||||||||||||||||||||
      获取异常的信息:包含了异常类型,位置,信息
      e.getMessage();给用户提示错误原因
      e.toString;获取异常类型,描述异常信息
      e.printStackTrace();获取异常类型,信息,位置
      |||||||||||||||||||||
      |||||||||||||||||||||
      |||||||||||||||||||||
      finally语句块,最后的
      有一些特定的代码不管异常是否会发生他都会执行mfinally存放代码一般来说一定会被指定行到
      格式:
      try{
      //可能有异常的代码
      }catch(异常类型 e){
      //处理异常
      }finally{
      //一点会执行的代码
      }
      //中间的catch语句可以省略,finally不能单独使用,建议三者连用
      |
      注意
      1.finally不能单独使用必须和try连用
      2.finally一般用于自愿的释放和回收,无论程序是否出现异常都会执行finally
      |
      备注
      如果finally语句块中有return语句,那么永远返回的是finally语句块的结果
      就除了Systm.exit()方法管什么东西都不能阻止fianlly的执行
      ||||||||||||||||||||||||
      ||||||||||||||||||||||||
      ||||||||||||||||||||||||
      异常注意事项:
      程序中我们一般使用的是一次捕获多次处理的方法,就是一个try多个catch,不同的catch的异常类型不同
      上面的异常只能是下面的异常的同一等级的,或者下面异常的子类
      注意事项:
      如果是运行时异常,可以不处理也不跑出,但是运行就会异常
      如果父类抛出多个异常,那么子类只能跑出相同的异常,或者异常子类,或者不抛出
      如果父类没有抛出异常,那么子类也不能抛出异常,只能捕获异常
      ||||||||||||||||||||||
      ||||||||||||||||||||||
      ||||||||||||||||||||||
      自定义异常
      什么事自定义异常类:在开发中根据自己的业务的情况来定义异常类
      如何自定义异常类
      1.自定义编译期异常:自定义类继承java.lang.Exception
      2.自定义运行期异常:自定义类继承java.long.RuntimeException
  • 相关阅读:
    学习进度笔记01
    《一级架构师实践指南》阅读笔记
    需求概述开发进度14
    需求概述开发进度13
    需求概述开发进度12
    需求概述开发进度11
    需求概述开发进度10
    爬虫的requests库和BeautifulSoup4的学习
    模拟体育竞技分析
    python文件格式转换
  • 原文地址:https://www.cnblogs.com/tushao/p/14108856.html
Copyright © 2011-2022 走看看