异常的应用finally与总结
一、finally{
},finally块中放入一定要执行的代码,通常用来关闭数据库,关闭链接,节约资源,所以finally中的内容一定要被执行,但是有一张情况不被执行,就是catch(Exception
e){System.exit(0);}执行这个语句,系统直接退出了。
二、对异常的总结;
1.异常的概念:程序运行有可能出现问题,然后把问题进行对象的封装。
2.体系:Throwable:异常分为两种:一种是严重的情况,用Error表示,一般不作处理,它的子类都以error作为后缀;另一种是不严重的异常,它用Exception表示,它的子类都以Exception作为后缀,其中有一个比较特殊的子类,就是RuntimelException
运行时异常,抛出此异常,不用在函数体上声明,编译时不做处理;如果声明了,调用者可以处理,也可以不作处理,程序停止运行,需要修改传入的参数;
3、区别两个关键字的使用:throw和throws:
throw:是定义在函数体内,用来抛出对象;而throws定义在函数体上,用来抛出异常类名。
4.异常按照处理过程中分类为两种:
(1)、编译时异常:抛出异常对象时,要声明抛出异常,如果不声明;编译出错,如果声明了,调用者,就要做出相应的处理;要么抛出,要么try,否则出错;
(2)、运行时异常:就是编译时不做处理,然后运行时,程序停止运行。RuntimeException,这时就要修改传递进来的参数。
5、异常处理的几种格式:
try
{
} catch(Exception
e){
}
try
{ }
catch(Exception
e)finally{
}
try { }finally{
}
6.异常在子父类中的体现:如果子类重写了父类中的方法,而父类中的方法抛出异常,那么子类要么抛出父类异常,要么抛出子类异常,总之,要让父类异常能够处理。
7.如果父类方法抛出多个异常,那么子类在重写父类中的方法时,只能抛出父类异常的子类。
8,如果父类或者接口中的方法没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常,如果子类中确实出现了异常,那么就必须处理,绝对不能抛出。
下面通过一个代码来体现一下:
class ExceptionDemo6
{
public static void main(String[] args)
{
Circle c=new Circle(-9);
c.getArea();
}
}
//定义一个异常
class NoValueException extends RuntimeException
{
NoValueException(String message)
{
super(message);
}
}
//定义一个接口,里面有一个方法,获取面积
interface Cir
{
void getArea();
}
//定义一个圆
class Circle implements Cir
{
private double r;
public static final double
PI=3.14;//定义一个全局常量;
Circle(double r) throws RuntimeException
{
this.r=r;
if(r<=0)
throw new
NoValueException("非法值");
}
public void getArea()
{
System.out.println(r*r*PI);
}
}
异常的应用finally与总结的更多相关文章
- alias导致virtualenv异常的分析和解法
title: alias导致virtualenv异常的分析和解法 toc: true comments: true date: 2016-06-27 23:40:56 tags: [OS X, ZSH ...
- ASP.NET Core应用的错误处理[2]:DeveloperExceptionPageMiddleware中间件如何呈现“开发者异常页面”
在<ASP.NET Core应用的错误处理[1]:三种呈现错误页面的方式>中,我们通过几个简单的实例演示了如何呈现一个错误页面,这些错误页面的呈现分别由三个对应的中间件来完成,接下来我们将 ...
- 记一次tomcat线程创建异常调优:unable to create new native thread
测试在进行一次性能测试的时候发现并发300个请求时出现了下面的异常: HTTP Status 500 - Handler processing failed; nested exception is ...
- 使用JSONObject.fromObject的时候出现“There is a cycle in the hierarchy”异常 的解决办法
在使用JSONObject.fromObject的时候,出现“There is a cycle in the hierarchy”异常. 意思是出现了死循环,也就是Model之间有循环包含关系: ...
- SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论
异常汇总:http://www.cnblogs.com/dunitian/p/4523006.html#signalR 后台创建了一个DntHub的集线器 前台在调用的时候出现了问题(经检查是代理对象 ...
- [C#] C# 知识回顾 - 你真的懂异常(Exception)吗?
你真的懂异常(Exception)吗? 目录 异常介绍 异常的特点 怎样使用异常 处理异常的 try-catch-finally 捕获异常的 Catch 块 释放资源的 Finally 块 一.异常介 ...
- [C#] C# 知识回顾 - 学会处理异常
学会处理异常 你可以使用 try 块来对你觉得可能会出现异常的代码进行分区. 其中,与之关联的 catch 块可用于处理任何异常情况. 一个包含代码的 finally 块,无论 try 块中是否在运行 ...
- [C#] C# 知识回顾 - 学会使用异常
学会使用异常 在 C# 中,程序中在运行时出现的错误,会不断在程序中进行传播,这种机制称为“异常”. 异常通常由错误的代码引发,并由能够更正错误的代码进行 catch. 异常可由 .NET 的 CLR ...
- [C#] C# 知识回顾 - 异常介绍
异常介绍 我们平时在写程序时,无意中(或技术不够),而导致程序运行时出现意外(或异常),对于这个问题, C# 有专门的异常处理程序. 异常处理所涉及到的关键字有 try.catch 和 finally ...
- 基于AOP的MVC拦截异常让代码更优美
与asp.net 打交道很多年,如今天微软的优秀框架越来越多,其中微软在基于mvc的思想架构,也推出了自己的一套asp.net mvc 框架,如果你亲身体验过它,会情不自禁的说‘漂亮’.回过头来,‘漂 ...
随机推荐
- Kotlin 学习
http://kotlinlang.cn/ 资料: https://segmentfault.com/a/1190000004494727 http://blog.csdn.net/u01413448 ...
- HIbernate学习笔记(六) 关系映射之多对多
六.多对多 - 单向 Ø 一般的设计中,多对多关联映射,需要一个中间表 Ø Hibernate会自动生成中间表 Ø Hibernate使用many-to-ma ...
- cocos2d-x3.0+Eclipse配置说明
假如我们已经装了JavaJDK.Cygwin,也解压了2013-08-27之后最新的AndroidSDK,其实最新的AndroidSDK已经集成了eclipse,eclipse里面已经配置好了Andr ...
- C++ STL@ list 应用 (leetcode: Rotate Array)
STL中的list就是一双向链表,可高效地进行插入删除元素. List 是 C++标准程式库 中的一个 类 ,可以简单视之为双向 连结串行 ,以线性列的方式管理物件集合.list 的特色是在集合的任何 ...
- JS实现复制到剪贴板
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- Java流操作之转换流
流的操作规律: 1.明确流和目的. 数据源(源头):就是需要读取,可以使用两个体系:InputStream.Reader 数据汇(目的地):就是需要写入,可以使用两个体系:OutputStream.W ...
- Java之字节输入流和输出流
package IODemo; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOEx ...
- angular的filter
angular的filter filter两种用法 1.在模板中使用filter {{expression|filter}}//基本用法 {{expression|filter1|filter2|fi ...
- C++学习笔记(十六):友元
问题的提出: 我们已知道类具备封装和信息隐 藏的特性.只有类的成员函数才能访问类的私有成员,程式中的其他函数是无法访问私有成员的.非成员函数能够访问类中的公有成员,但是假如将数据成员都定义 为公有的, ...
- Jsp中的pageContext对象
这个对象代表页面上下文.组要用于访问页面共享数据.使用pageContext可以直接访问request,session,application范围的属性,看看这些jsp的页面: JSP 页面使用 pa ...