异常:

  是什么?是对问题的描述,将问题进行对象的封装。

异常体系:

  Throwable

  |--Error

  |--Exception

  |--RuntimeException

异常体系的特点:

  异常体系中的所有类以及建立的对象都具备可抛性。

  也就是说可以被throw和throws关键字所操作。

  只有异常体系具备这个特点。

throw和throws的用法:

  throw定义在函数内,用于抛出异常对象。

  throws定义在函数上,用于抛出异常类,可以抛出多个,用逗号隔开。

当函数内有throw抛出异常对象时,并且未进行try处理,必须要在函数上声明,否则编译失败。

注意,RuntimeException除外。也就是说,函数内如果抛出的是RuntimeExceptin异常,函数上可以不用声明。

如果函数声明了异常,调用者需要进行处理。处理方法可以throws可以try。

异常有两种:

  编译时被检测异常

    该异常在编译时,如果没有处理(没有抛也没有try),编译失败。

    该异常被标识,代表着可以被处理。

  运行时异常(编译时不检测)

    在编译时,不需要处理,编译器不检查。

    该异常的发生,建议不处理,让程序停止。需要对代码进行修正。

异常处理语句:

  try

  {

  需要被检测的代码;

  }

  catch()

  {

   处理异常的代码;

  }

  finally

  {

  一定会执行的代码;

  }

有三种结合格式:

try

{

}

catch()

{

}

finally

{

}

try

{

}

finally

{

}

try

{

}

catch()

{

}

注意:

1.finally中定义的通常是关闭资源的代码。因为资源必须释放。

2.finally只有一种情况不执行。当执行到System.exit(0);finally不会执行。

自定义异常:

按照java的面向对象思想,将程序中出想的特有问题进行封装。

定义类继承Exception或者RuntimeException

1.为了让该自定义类具备可抛性。

2.让该类具备操作异常的共性方法。

当要定义自定义异常的信息时,可以使用父类已经定义好的功能。

将异常信息传递给父类的构造函数。

class MyException extends Exception

{

MyException(String message)

{

super(message);

}

}

异常的好处:

1.将问题进行封装。

2.将正常流程代码和问题处理代码分离,方便于阅读。

异常的处理原则:

1.处理方式有两种:try 或者 throws。

2.调用到抛出异常的功能时,抛出几个,就处理几个。

一个try对应多个catch。

3.多个catch,父类的catch放到最下面。

4.catch内,需要定义针对性的处理方式。不要定义简单的printStackTrace,输出语句也不要写。

当捕获到的异常,本功能处理不了时,可以继续在catch中抛出。

try

{

throw new AException();

}

catch(AException e)

{

throw e;

}

如果该异常处理不了,但并不属于该功能出现得异常。

可以将异常转换后,在跑出和该功能相关的异常。

或者异常可以处理,但需要将异常产生的和本功能相关的问题提供出去,使调用者知道并处理。也可以将异常处理后,转换成新的异常。

try

{

throw new AException();

}

catch(AException e)

{

//对AException处理。

throw new BException();

}

异常的注意事项:

在子父类覆盖时:

1.子类抛出的异常必须是父类的子类或者子集。

2.如果弗雷或者接口没有异常抛出时,子类覆盖出现异常,只能try不能抛。

参阅:

ExceptionTest.java 老使用电脑上课

ExceptionTest1.java 图像面积

java异常 总结的更多相关文章

  1. 浅谈java异常[Exception]

    学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:589809992 我们一起学Java! 一. 异常的定义 在<java编程思想 ...

  2. 基础知识《十》java 异常捕捉 ( try catch finally ) 你真的掌握了吗?

    本文转载自  java 异常捕捉 ( try catch finally ) 你真的掌握了吗? 前言:java 中的异常处理机制你真的理解了吗?掌握了吗?catch 体里遇到 return 是怎么处理 ...

  3. Java异常体系及分类

    上图是基本的java异常体系结构. 主要分为2大类:Error和Exception 1.Error:描述了Java运行系统中的内部错误以及资源耗尽的情形.应用程序不应该抛出这种类型的对象,一般是由虚拟 ...

  4. Java异常之自定义异常

    哎呀,妈呀,又出异常了!俗话说:"代码虐我千百遍,我待代码如初恋". 小Alan最近一直在忙着工作,已经很久没有写写东西来加深自己的理解了,今天来跟大家聊聊Java异常.Java异 ...

  5. 第11章 Java异常与异常处理

    1.Java异常简介 1.什么是异常异常出现的时候代码会无法正常运行下去,会产生各种问题2.捕捉异常的作用提早发现异常,方便查找问题,并给出解决方法3.Java中的异常1.Java中所有不正常的类都是 ...

  6. java 异常

    1.java异常 2.自定义抛出 3.运行时异常,程序有问题,让使用者可以改' ' 4.return  和  throw的区别 return 符合函数要求的值    throw  有问题的时候用它结束 ...

  7. 3.Java异常进阶

    3.JAVA异常进阶 1.Run函数中抛出的异常 1.run函数不会抛出异常 2.run函数的异常会交给UncaughtExceptionhandler处理 3.默认的UncaughtExceptio ...

  8. 2.Java异常学习

    1.Java异常的概念 异常的例子 1.除法就是一个需要捕获异常的例子,除数又可能是0 异常处理的基本流程如下 一旦发生异常,就使得程序不按照原来的流程继续的运行下去 a.程序抛出异常 try{ th ...

  9. java异常架构图 和几个面试题

    1.java异常架构图 粉红色的是受检查的异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.受检查的异常必须在编译时被 ...

  10. 黑马----JAVA异常

    黑马程序员:Java培训.Android培训.iOS培训..Net培训 黑马程序员--JAVA异常 一.JAVA异常有三种语句块:try语句块.catch语句块.finally语句块. 1.try语句 ...

随机推荐

  1. codeforces A. Bayan Bus(简单模拟)

    #include <queue> #include <string> #include <cstdio> #include <cstring> #inc ...

  2. Unity3D 游戏开发之内存优化

    项目的性能优化主要围绕CPU.GPU和内存三大方面进行. 无论是游戏还是VR应用,内存管理都是其研发阶段的重中之重. 然而,在我们测评过的大量项目中,90%以上的项目都存在不同程度的内存使用问题.就目 ...

  3. Xcode 报错信息

    1.CUICatalog: Invalid asset name supplied: 原因是: 使用的方法[UIImage imageNamed:@""]; @"&quo ...

  4. 前端翻译:Activating Browser Modes with Doctype

    一.前言 原本备份: http://www.cnblogs.com/fsjohnhuang/p/3830623.html 由于本人英语能力有限,译本内容难免有误,望各位指正! 本译文不含附录部分,请知 ...

  5. Sprint第三个冲刺(第七天)

    项目基本上可以说完成了,只是还有些小bug要修复.

  6. 图片轮播(左右切换)--JS原生和jQuery实现

    图片轮播(左右切换)--js原生和jquery实现 左右切换的做法基本步骤跟 上一篇文章  淡入淡出 类似,只不过修改了一些特定的部分 (1)首先是页面的结构部分 对于我这种左右切换式 1.首先是个外 ...

  7. 支付宝支付集成,上传RSA公钥一直显示格式错误

    碰到同样的问题,支付宝的问题,已有解决方案:https://openhome.alipay.com/platform/keyManage.htm?keyType=partner

  8. Cocos2dx 3.x包含ext库报错解决

    之前使用cocos2dx 3.6版本中用到了ext库中的一些东西,使用visual studio 2013,编译的时候报错: 无法打开包括文件:“extensions/ExtensionMacros. ...

  9. csharp:Chart

    http://www.dotnetperls.com/chart using System; using System.Windows.Forms; using System.Windows.Form ...

  10. AC自动机---病毒侵袭

    HDU 2896 题目网址: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=110773#problem/B Description 当太 ...