Java语言基础:异常机制

原创 2011年03月27日 21:34:00

1.  抛出异常

  • 通过throw new ThrowableClass语法可以抛出一个异常,其中ThrowableClass是一个从Throwable继承的类,或者是Throwable类本身,先看下面的

 

  • 上面的代码会导致编译错误,对于有抛出异常的方法,编译器强制要求:要么在方法上声明要抛出的异常(称为异常说明),要么在方法中用try块捕获这个异常。

 

异常说明可以是方法抛出的异常类本身,也可以是异常类的基类,比如throws后面可以是throwable。

  • 上面说到对于有抛出异常的方法,必须带有方法声明,这并不准确,当抛出的异常类是RuntimeException或其继承类时,不需要异常说明:

 

  • 一个方法即使内部没有抛出异常,也仍然可以带有异常说明:

 

  • 一个方法若带有异常说明,则调用它的其他方法也要带有异常说明,或者要捕获可能抛出的异常:

 

  • 可以基于Exception现实自己的异常类:

 

2.  捕获异常和结束清理

  • 用try{}块包围住可能引发异常的代码,后面紧跟着异常处理器(即catch(...){}块);catch块可以有多个,()中声明要捕获的异常类。当try块抛出一个异常时,执行代码将跳到catch块去,并从第一个catch块开始匹配,直到找到符合的catch块。请看下面的代码说明:

 

  • 在异常处理器后面加上finally子句,无论异常是否发生,finally子句一定会被调用到,finally子句常被用于清理垃圾回收之外的资源,比如打开的文件,网络链接等:

 

3.  异常的限制:对于继承类,它如果所覆盖的方法有异常说明,则所列出的异常类,必须是基类该方法所列出的异常类的子集,先看一个例子:

 

再看一下例子:

 

构造器是一个例外,继承类可以声明更多的异常类,但必须加上基类所声明的异常类:

 

Java异常机制

Java异常机制 异常是程序运行过程中出现的错误。本文主要讲授的是Java语言的异常处理。Java语言的异常处理框架,是Java语言健壮性的一个重要体现。 Java把异常当作对象来处理,并定义一个基类...
  • wuwenxiang91322
  • wuwenxiang91322
  • 2013年08月26日 15:43
  • 4855

java深入浅出解析异常机制

三月份啦,月初第一篇写一份异常机制的完全解析,表明这个月努力学习的决心! 以下长文预警!!! java中的异常处理的目的在于通过使用少量的代码,使得程序有着强大的鲁棒性,并且这种异常处理机制会让...
  • QuinnNorris
  • QuinnNorris
  • 2017年03月02日 19:38
  • 2340

Java异常机制--try catch finally 执行顺序详解

引言关于try catch finally 执行顺序的笔试面试题目非常的多,我曾经在牛客网刷题的时候不止一次的碰到过,而且不止一次的做错过,这里面需要涉及的细节如果不弄清楚每次做题就会产生似是而非的感...
  • u013309870
  • u013309870
  • 2017年06月20日 16:52
  • 332

Java面试题之异常

1.可检查异常,编译器出现的异常,必须通过try/catch或者throw进行处理,否则编译不会通过 2.非检查异常,运行时异常,运行时出现的异常,建议不要处理 3.error 很严重的错误一般...
  • peanutwzk
  • peanutwzk
  • 2018年02月01日 20:20
  • 14

Thinking in Java---异常处理机制

java的异常处理机制可以使程序有极好的容错性,让程序更加的健壮.所谓的异常,就是指的阻止当前方法或作用域继续执行的问题,,当程序运行时出现异常时,系统就会自动生成一个Exception对象来通知程序...
  • acm_lkl
  • acm_lkl
  • 2015年06月09日 09:48
  • 1233

Java必知必会:异常机制详解

一、Java异常概述 在Java中,所有的事件都能由类描述,Java中的异常就是由java.lang包下的异常类描述的。1、Throwable(可抛出):异常类的最终父类,它有两个子类,Error与...
  • zhangliangzi
  • zhangliangzi
  • 2016年05月01日 17:52
  • 4861

Java语言基础面试题及答案

1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?  可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。 2、Java有没有goto?...
  • develop_wangzhi
  • develop_wangzhi
  • 2017年04月21日 11:32
  • 1124

JAVA语言基础知识(一)

JAVA基础名词 JDK软件安装 JDK软件下的目录简介 JAVA关键字和保留字 二进制、八进制、十进制和十六进制 JAVA原码、反码、补码 JAVA三大注释...
  • dlmacr
  • dlmacr
  • 2017年03月28日 13:00
  • 1061

Java异常机制的浅析(一)

缘起: 因为最近准备对我第一个SSH项目进行重写和优化,在做这件事之前,我需要反思整理这个项目在之前的开发过程中忽略的地方。并期望在这次开发中正视问题,发现问题。 本文目标: 1、搞清楚为什么使用异常...
  • mzqqqqq
  • mzqqqqq
  • 2017年03月04日 18:49
  • 75

Java中异常机制的意义

什么是异常:异常就是程序在运行时出现的不正常情况。对于严重的情况Java通过Error类进行描述,一般不用编写代码处理;对于不严重的情况Java通过Exception描述,一般编写针对性代码对其进行处...
  • qq_34122768
  • qq_34122768
  • 2016年05月18日 20:06
  • 1805
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java语言基础:异常机制
举报原因:
原因补充:

(最多只允许输入30个字)