异常:

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

异常体系:

  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. 潮流设计:15个创意的 3D 字体版式作品欣赏

    3D字体设计是真的很棒,它最适用于广告.使用3D文字和不同的惊人效果,例如灯光或纹理带来了很多东西.在版式设计中,最重要的是消息.如果它抓住了用户的注意力,设计工作是在正确的轨道上. 您可能感兴趣的相 ...

  2. Android 学习笔记之WebService实现远程调用+内部原理分析...

    PS:终于可以抽出时间写写博客了,忙着学校的三周破实训外加替考...三周了,没怎么学习...哎... 学习内容: 1.WebService 实现远程方法的调用   什么是WebService...   ...

  3. Java中基本数据类型的存储方式和相关内存的处理方式(java程序员必读经典)

    1.java是如何管理内存的 java的内存管理就是对象的分配和释放问题.(其中包括两部分) 分配:内存的分配是由程序完成的,程序员需要通过关键字new为每个对象申请内存空间(基本类型除外),所有的对 ...

  4. sql server service broker中调用存储过程执行跨库操作,不管怎么设置都一直提示 服务器主体 "sa" 无法在当前安全上下文下访问数据库 "dbname"。

    用sql server自带的消息队列service borker,调用存储过程中,执行了一个跨库的操作,先是用了一个用户,权限什么都给够了,但是一直提示 服务器主体 "user" ...

  5. 堆表和%%lockres%%函数

    在今天的文章里,我想向你展示下SQL Server里一个未公开的函数,还有你如何用那个函数来找出在哪页记录被存储. %%lockres%% 今天我想向你展示的未公开函数叫做%%lockres%%,它与 ...

  6. 利用session做国际化引起的old区内存爆满及修复方法

    题记:昨天加班打车回家,看见前面有辆路虎在高速上开的巨慢,挡住了我坐的出租车的路,于是就跟司机吐槽了一句:“前面这车怎么这么面啊?”,司机沉默了大概3秒,说了一句富含哲理性的话:“没有面车,只有面人” ...

  7. 【UWP】对 Thickness 类型属性进行动画

    好几个月没写 blog 了,一个是在忙新版的碧影壁纸,另一方面是等(观望)周年更新的 api(不过现在还是比较失望,仍然没法支持矩形以外的 Clip).闲话少说,进入主题. 在 UWP 中,出于性能考 ...

  8. ok6410 android driver(11)

    This essay, I go to a deeply studying to android HAL device driver program. According to the android ...

  9. 后缀数组 --- WOj 1564 Problem 1564 - A - Circle

    Problem 1564 - A - Circle Problem's Link:   http://acm.whu.edu.cn/land/problem/detail?problem_id=156 ...

  10. .NET开发 正则表达式中的 Bug

    又发现了一个 .net 的 bug!最近在使用正则表达式的时候发现:在忽略大小写的时候,匹配值从 0xff 到 0xffff 之间的所有字符,正则表达式竟然也能匹配两个 ASCII 字符:i(code ...