JAVA学习笔记 之 异常

Wesley13
• 阅读 714

异常的概述

代码在运行时期发生的问题就称之为异常。在java中,异常被封装成为了一个类,当程序出现了异常类中的问题时,异常的信息(如位置和原因)就会被抛出。

在java中用Exception来描述异常,public class Exception extends Throwable 则是异常的继承体系。  Throwable是所有错误或异常的超类。

错误和异常的关系就相当于艾滋和感冒的关系。人得了艾滋几乎不可治愈,而得了感冒却还可以继续正常生活。所以出现错误就意味着代码一定要被修改,而出现异常程序还是可以继续运行下去的。

异常的实例

   JAVA学习笔记 之 异常 JAVA学习笔记 之 异常

  这是很常见的一个数组越界异常,即arr[3]没有索引。整个异常的处理过程如下:①JVM检测到getarray()方法存在数组越界异常,然后将之抛给调用者main()方法。②main()方法发现自己无法处理该异常,于是最后返回给JVM。③JVM将异常的信息 索引“3”和代码位置打印在控制台上。

  在这个过程中,getarray()方法里面的 arr[3]出现异常,于是它后面的 return语句不再执行;main()方法里面的int i=getarray(arr)出现异常,于是后面的打印语句不再执行。

异常的处理格式  throw 、 try和catch

JAVA学习笔记 之 异常 JAVA学习笔记 之 异常

  在编写程序的时候,我们不能等到控制台告诉你出现了哪些异常,而是要自己提前将可能出现问题给写出来,这就要用到throw关键字。例如对于数组,除了越界,也可能会出现为空的情况。

  这时我们便在方法里面,提前判断,然后用throw关键字创建异常对象,即new Exception(.....),当出现问题的时候,控制台就会将出现的问题,括号中的内容打印出来给我们。

  要注意的是,使用这种异常格式的时候,main方法和被调用的方法都需要thorws Exception。因为方法里面可能抛出多个异常,所以用throws,而创建异常对象的时候,只会有一个,所以用throw。

  JAVA学习笔记 之 异常       JAVA学习笔记 之 异常

  当运用 了try和catch语句之后,就不需要再让主函数去继承异常。而是用try和catch语句去处理异常。基本的格式是 try {..........}检测括号内语句是否出现异常,catch(异常+ 变量名){........}捕获异常并用变量接收,{......}写处理异常的方法 。

  这里就是用 try 语句检测getarray()方法是否有异常,然后用catch语句捕获异常。因为异常是NullPointerException所以就(NullPointerException ex),即用ex去接收异常,然后处理异常就是将ex打印出来。

final{......}    必须要执行的代码

  JAVA学习笔记 之 异常       JAVA学习笔记 之 异常

  这个很好理解了,就不多赘述。

*运行时异常

  JAVA学习笔记 之 异常

  当你创建的异常是RuntimeException时,方法不需要再抛出异常,即不需要再写throws Exception,调用者也不需要再去处理。

  原因很简单:运行异常原本就不能发生,但是如果发生了,需要你的程序人员停止程序然后修改源代码。

方法重写时异常的处理

   JAVA学习笔记 之 异常      JAVA学习笔记 之 异常

  当继承父类的方法后,如果父类抛出异常,子类可以抛出异常也可以不抛出异常。但如果子类抛出异常,异常的继承关系不能比父类高。

   如果父类不抛出异常,子类则不能抛出异常。但如果子类调用的方法抛出了异常,这时子类只能选择try和catch。

自定义异常

JAVA学习笔记 之 异常 JAVA学习笔记 之 异常

  自定义异常大部分都是RuntimeException,因为这些异常是真正使用的时候,不能出现的。

  int...source是可变参的意思,即可以接收多个科目的成绩。

  这里定义了FuShuException,然后(String s)是构造器,super(s)则是将参数s传回去。

点赞
收藏
评论区
推荐文章
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
javaAPI_IO流基础_异常
异常1.异常的概述和分类java中的异常有一个超类Throwable,然后其有俩个子类接口Error和Exception,其中Error是严重问题,这一个是程序中无法解决的,而另一个Exception则是一般问题。Exception又可以分为俩个:(1).编译时期异常:不是RuntimeException的异常,这一个是必须
Wesley13 Wesley13
3年前
Java中的异常
异常的概述异常就是不正常的意思,Java语言中主要指程序在运行阶段产生的错误Throwable(可抛出、可扔出的)Java.lang.Throwable类是Java程序所有错误或异常的超类主要有两个子类:  Error:主要描述比较严重的错误,无法通过编程来解决的重大的错误  Exception:主要描述比较轻量
Wesley13 Wesley13
3年前
03.Android崩溃Crash库之ExceptionHandler分析
目录总结00.异常处理几个常用api01.UncaughtExceptionHandler02.Java线程处理异常分析03.Android中线程处理异常分析04.为何使用setDefaultUncaughtExceptionHandler前沿上一篇整体介绍了crash崩溃
Wesley13 Wesley13
3年前
JEE开发异常处理
      在Java开发中,到处可见Exception或者它的子类。如何在一个已有的框架中或者自己的项目中利用好异常,而不让异常漫天飞,需要开发的积累和总结,这篇日志就为这个目的总结几年来的开发对异常使用总结吧。      首先认识Java异常体系结构,Java中使用Throwable作为所有的异常父类,下面有两大子类Error和Excepti
Wesley13 Wesley13
3年前
Java 的Throwable、error、exception的区别
1.  什么是异常?异常本质上是程序上的错误,包括程序逻辑错误和系统错误。比如使用空的引用(NullPointerException)、数组下标越界(IndexOutOfBoundsException)、内存溢出错误等。Throwable类是Java语言中所有错误或异常的超类。有两个重要的子类:Exception(异常)和Error(错误),
Stella981 Stella981
3年前
Exception、Thorow、Throws、TryCatch
一、异常 概述:  异常指的是不正常,指的是程序中出现了某种问题       java中,所有问题都可以使用一个类来表示,这个类叫做Throwable  Throwable:       Throwawble是java中所有异常和错误的父类      Error: 表示错误,指的是不可挽回的严重问题    
Wesley13 Wesley13
3年前
Java入门之异常处理
1.异常概念异常指的是程序在执行过程中出现的非正常的情况,导致JVM的非正常停止。在Java中,异常是一个类,产生异常就是创建异常对象并抛出一个异常对象。异常指的并不是语法错误,语法错误,编译不会通过,而是编译通过后,程序执行异常。异常的作用是帮助我们找到程序中的问题。2.异常产生过程解析pub
Stella981 Stella981
3年前
PlayJava Day020
1.异常Exception补充:①错误(Error)指的是致命性错误,一般无法处理②异常以类的形式封装程序可以处理的异常对应的类是java.lang.Exception及其子类运行时异常对应的类是java.lang.RuntimeException错误异常对应的类是java.lang.Error③异常相关类的继承树:java.la
Wesley13 Wesley13
3年前
Java异常架构
Java异常简介Java异常是Java提供的一种识别及响应错误的一致性机制。Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。在有效使用异常的情况下,异常能清晰的回答what,where,why这3个问题:异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息