java异常处理总结
2016-01-02 19:52
471 查看
1、异常:就是程序在运行时出现的不正常的情况。
异常的由来:问题也是现实生活中的一个具体的事物,亦可以通过Java的类的形式描述,并封装成对象。其实就是Java对不正常情况描述后的对象体现。
对问题的划分:两种:一种是严重的问题,一种非严重的问题。
1)对于严重的,Java通过Error类进行描述。对于Error一般不编写针对性的代码对其进行处理。
2)对于非严重的,Java通过Exception类进行描述。对于Exception可以使用针对性的处理方式进行处理。
注意:无论Error或者Exception都具有一些共性内容。比如:不正常情况的内容,引发原因等。
Throwable:Error,Exception。
2、当在函数内部出现了throw抛出异常对象,1)那么就必须要给对应的处理动作,2)要么在内部trycatch处理,要么在函数上声明让调用者处理。一般情况下,函数内出现异常,函数上需要声明。
如何定义异常信息:
int div(int a ,int b) throws FuShuException
{
if (b<0)
thrownew FuShuException();//
returna/b;
}
}
因为父类中已经把异常信息的操作都完成了。所以子类只要在构造时,将异常信息传递给父类通过super语句。那就可以直接通过getMessage获取自定义的异常信息。
自定义异常必须是自定义类继承Exception。
继承Exception原因:异常体系有一个特点,因为异常和异常对象都被抛出。他们都具备可抛性,这个可抛性是Throwable这个体系中特有特点。
只有这个体系中的类和对象才可以被throw和throws操作。
1、Exception中有一个特殊的子类异常RuntimeException(其有很多子类)运行时异常。
1)如果在函数内容抛出异常,函数上可以不用声明,编译一样通过。
2)如果在函数上声明了该异常。调用者可以不用进行处理。编译一
样通过。(ArithmeticException;)
例如:
int div(inta, int b){
if(b<0)
throw new ArithmeticException(“被除零了”);
teturn a/b;
}
3、之所以不用在函数声明,是因为不需要烫调用者处理。当该异常发生,希望程序停止,因为在运行时,出现了无法继续运算的情况,希望停止程序后,对代码进行修正。
例子:
Class person
{
Publicvoid checkName(String name)
{
//If(name.equals(“lisi”))//NullPointerException(空指针异常)
If(“lisi”.equals(name))//if(neme!=null&&name.equals(“lisi”)) 这样就不会错。
System.out.println(“yes”);
Else
System.out.println(“no”);
}}
Main(){
Personp=new person();
p.checkName(null);}
4、自定义异常时:如果该异常的发生,无法再继续进行运算,就让自定义异常继承RuntimeException(非常特殊,会引发程序停止).
异常的由来:问题也是现实生活中的一个具体的事物,亦可以通过Java的类的形式描述,并封装成对象。其实就是Java对不正常情况描述后的对象体现。
对问题的划分:两种:一种是严重的问题,一种非严重的问题。
1)对于严重的,Java通过Error类进行描述。对于Error一般不编写针对性的代码对其进行处理。
2)对于非严重的,Java通过Exception类进行描述。对于Exception可以使用针对性的处理方式进行处理。
注意:无论Error或者Exception都具有一些共性内容。比如:不正常情况的内容,引发原因等。
Throwable:Error,Exception。
2、当在函数内部出现了throw抛出异常对象,1)那么就必须要给对应的处理动作,2)要么在内部trycatch处理,要么在函数上声明让调用者处理。一般情况下,函数内出现异常,函数上需要声明。
如何定义异常信息:
int div(int a ,int b) throws FuShuException
{
if (b<0)
thrownew FuShuException();//
returna/b;
}
}
因为父类中已经把异常信息的操作都完成了。所以子类只要在构造时,将异常信息传递给父类通过super语句。那就可以直接通过getMessage获取自定义的异常信息。
自定义异常必须是自定义类继承Exception。
继承Exception原因:异常体系有一个特点,因为异常和异常对象都被抛出。他们都具备可抛性,这个可抛性是Throwable这个体系中特有特点。
只有这个体系中的类和对象才可以被throw和throws操作。
1、Exception中有一个特殊的子类异常RuntimeException(其有很多子类)运行时异常。
1)如果在函数内容抛出异常,函数上可以不用声明,编译一样通过。
2)如果在函数上声明了该异常。调用者可以不用进行处理。编译一
样通过。(ArithmeticException;)
例如:
int div(inta, int b){
if(b<0)
throw new ArithmeticException(“被除零了”);
teturn a/b;
}
3、之所以不用在函数声明,是因为不需要烫调用者处理。当该异常发生,希望程序停止,因为在运行时,出现了无法继续运算的情况,希望停止程序后,对代码进行修正。
例子:
Class person
{
Publicvoid checkName(String name)
{
//If(name.equals(“lisi”))//NullPointerException(空指针异常)
If(“lisi”.equals(name))//if(neme!=null&&name.equals(“lisi”)) 这样就不会错。
System.out.println(“yes”);
Else
System.out.println(“no”);
}}
Main(){
Personp=new person();
p.checkName(null);}
4、自定义异常时:如果该异常的发生,无法再继续进行运算,就让自定义异常继承RuntimeException(非常特殊,会引发程序停止).
相关文章推荐
- java Hibernate save()与persist()区别
- SSM框架(一)之SSM框架整合(Spring,SpringMVC,MyBatis)
- eclipse插件在线发布发布和版本更新(web site) 转
- 1.2.4 Java Annotation 提要
- springMVC项目创建及导入包项
- 用java解 leetcode上easy题2(开始探险)
- java.lang.Comparable接口小结
- Java算法--串的简单处理
- java synchronized详解
- java并发API:CyclicBarrier跑步比赛--一起跑
- 仲恺ACM 1020:电梯升降【java】
- 用java解leetcode上的easy题(开始探险)
- freemaker 页面无法显示spring mvc 传递的对象属性
- 《java核心技术》的隐式参数与显式参数之说
- SpringMVC异常处理
- Core Java (十一) Java 继承,类,超类和子类
- java类继承总结一 父类类型与子类类型之间的转化问题(转)
- Android 开发环境安装配置 JDK1.8.0+Android studio
- eclipse插件使用
- JAVA 正则表达式的三种模式: 贪婪, 勉强和占有的讨论