=========== ASP.Net+Android+IOS开发.Net培训、期待与您交流!===========

异常即对问题的描述,将问题进行对象的封装。

1. 异常体系:Throwable

异常体系中的所有类以及建立的对象都具备可抛性。也就是说可以被throw和throws关键字所操作。 只有异常体系具备这个特点。

2. throw和throws的用法:

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

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

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

注意,RuntimeException除外。即函数内如果抛出的RuntimeExcpetion异常,函数上可以不用声明。

3. 异常处理方式

异常有两种:

编译时被检测异常

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

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

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

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

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

异常处理语句:

  1. try
  2.  
  3. {
  4.  
  5.   需要被检测的代码;
  6.  
  7. }
  8.  
  9. catch ()
  10.  
  11. {
  12.  
  13.   处理异常的代码;
  14.  
  15. }
  16.  
  17. finally
  18.  
  19. {
  20.  
  21.   一定会执行的代码;
  22.  
  23. }

注意:

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

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

4. 自定义异常:

定义类继承Exception或者RuntimeException

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

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

当要定义自定义异常的信息时,可以使用父类已经定义好的功能。将异常信息传递给父类的构造函数。

  1. class MyException extends Exception
  2.  
  3. {
  4.  
  5. MyException(String message)
  6.  
  7. {
  8.  
  9. super(message);
  10.  
  11. }
  12.  
  13. }

自定义异常:按照java的面向对象思想,将程序中出现的特有问题进行封装。

5. 异常的好处:

1,将问题进行封装。

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

6. 异常的处理原则:

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

2,调用到抛出异常的功能时,抛出几个,就处理几个,一个try对应多个catch。

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

4,catch内,需要定义针对性的处理方式。不要简单的定义printStackTrace,输出语句。也不要不写。当捕获到的异常,本功能处理不了时,可以继续在catch中抛出。

  1. try
  2.     {
  3.      throw new AException();
  4.    }
  5.  
  6.     catch (AException e)
  7. {
  8.      throw e;
  9.    }

如果该异常处理不了,但并不属于该功能出现的异常。可以将异常转换后,再抛出和该功能相关的异常。或者异常可以处理,当需要将异常产生的和本功能相关的问题提供出去,让调用者知道。并处理。也可以将捕获异常处理后,转换新的异常。

  1.    try
  2.     {
  3.  
  4.        throw new AException();
  5.     }
  6.  
  7. catch (AException e)
  8.      {
  9. // 对AException处理。
  10.       throw new BException();
  11.      }

7. 异常的注意事项:

在子父类覆盖时:

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

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

-----------☆-----------ASP.Net+Android+IOS开发.Net培训、期待与您交流! -----------☆-----------

详细请查看: http://edu.csdn.net

黑马程序员:Java编程_异常的更多相关文章

  1. 黑马程序员----java基础:异常

    dff ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 经常写程序的人对try...catch...finally语句肯定是不陌生的了.但是好多 ...

  2. 黑马程序员_Java面向对象_异常

    6.异常 1.异常: 就是程序在运行时出现不正常的情况.问题也是现实生活中一个具体的事物,也可以通过Java的类进行描述,并封装成对象.Exception和Error的子类名都是以父类名作为后缀名. ...

  3. 【黑马18期Java毕业生】黑马程序员Java全套资料+视频+工具

        Java学习路线图引言:        黑马程序员:深知广大爱好Java的人学习是多么困难,没视频没资源,上网花钱还老被骗. 为此我们历时一个月整理这套Java学习路线图,不管你是不懂电脑的小 ...

  4. [刘阳Java]_程序员Java编程进阶的5个注意点,别编程两三年还是增删改查

    此文章也是关注网上好几篇技术文章后,今天分享出来.因为,总有在程序学习路上的小伙伴会感到迷茫.而迷茫存在的情况如下 第一种:在大学学习中出现的迷茫,不知道Java到底要学什么.学习Java的标准是什么 ...

  5. 黑马程序员——JAVA基础之语法、命名规则

    ------- android培训.java培训.期待与您交流! ---------- 1.java语言组成:关键字,标识符,注释,常量和变量,运算符,语句,函数,数组. 2.java关键字:被Jav ...

  6. 黑马程序员Java基础班+就业班课程笔记全发布(持续更新)

    正在黑马学习,整理了一些课程知识点和比较重要的内容分享给大家,也是给自己拓宽一些视野,仅供大家交流学习,大家有什么更好的内容可以发给我 ,现有黑马教程2000G  QQ 1481135711 这是我总 ...

  7. 黑马程序员----java基础笔记中(毕向东)

    <p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...

  8. 黑马程序员——JAVA基础之泛型和通配符

    ------- android培训.java培训.期待与您交流! ---------- 泛型:            JDK1.5版本以后出现新特性.用于解决安全问题,是一个类型安全机制. 泛型好处: ...

  9. 黑马程序员——JAVA基础之简述面向对象,类,变量,匿名对象

    ------- android培训.java培训.期待与您交流! ---------- 面向对象: 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程 强调的是功能行为 面向对象 将 ...

  10. 黑马程序员 ——Java SE(1)

    ----<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训 ...

随机推荐

  1. hadoop运维经验

    0.优化:http://dongxicheng.org/mapreduce/hadoop-optimization-0/ http://dongxicheng.org/mapreduce/hadoop ...

  2. uploadify springMVC

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  3. C#编写最小化时隐藏为任务栏图标的 Window appllication.

    1.设置WinForm窗体属性showinTask=false 2.加notifyicon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标. 3.添加窗体最小 ...

  4. Lucas定理

    Lucas' theorem In number theory, Lucas's theorem expresses the remainder of division of the binomial ...

  5. jQuery的环境配置

    目前最新的版本,是 1.10.1 和 2.0.2,如果你需要引用到你线上的项目,就必须使用压缩版,去掉了注释和空白,是容量最小. 从CDN中载入JQuery,如Google中载入JQuery: htt ...

  6. dev uploadcontrol 上传图片

    <script type="text/javascript"> // <![CDATA[ function Uploader_OnUploadStart() { ...

  7. NGUI UIToggle

    NGUI UIToggle 1.add a UI Toggle(Script) and UI Toggle Objects(Script) to a Tab Button(Which has a UI ...

  8. java程序

    package Dome3; import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import jav ...

  9. 两种JS方法实现斐波那契数列

    第一种方法:递归 function fibonacci(n){ if (n==0){ return 0; }else if (n==1){ return 1; } return fibonacci(n ...

  10. three.js

    webgl,three.js交流的论坛,欢迎到里面提问问题 www.webglchina.cn