Java-异常
一 异常
异常:就是程序在运行时出现的不正常情况
异常的由来:就是现实生活中的一个具体的事务,可以通过Java类的形式来描述,并封装成对象,就是java对不正常情况进行描述后的对象体现
二 问题的分类
严重的问题:通过Error类描述
非严重的问题:通过Exception描述,并用exception特有的方法来处理
但是无论是Error还是exception都具有一些共性的内容都继承自
Throwable
Throwable
|--Error
|--Exception
三 异常的处理
try
{
}
catch(异常类1 变量e)
{
//打印异常的信息
System.out.println(e.getMessage());
//打印异常的名称:异常信息
System.out(e.toString());
//异常名称:异常信息,异常出现的位置
//其实jvm虚拟机的默认异常处理机制没及时在调用printStackTrace()方法,可以打印异常的堆栈的跟踪信息
e.printStackTrace();
}
//多个catch可以进行多异常处理,声明异常的时候,建议声明为具体的异常
catch(异常类2 变量e)
{
//打印异常的信息
System.out.println(e.getMessage());
//打印异常的名称:异常信息
System.out(e.toString());
//异常名称:异常信息,异常出现的位置
//其实jvm虚拟机的默认异常处理机制没及时在调用printStackTrace()方法,可以打印异常的堆栈的跟踪信息
e.printStackTrace();
}
finally
{
}
三 在函数上声明throws
int div(int a,int b) throws Exception//在功能上通过throws的关键字可以声明有可能会出现问题
{
return a/b;
}
便于提高安全性,让调用处进行处理,不处理的话编译失败
四.自定义异常
如何自定义异常:
因为父类已经把异常信息的操作都完成了
所以子类只要在构造的时候,将异常信息传递给父类通过super语句,就可以
直接getMessage方法获取自定义的异常信息了
注意:自定义异常的时候,如果该异常的发生,无法在继续进行运算
就自定义类继承只RuntimeException
异常的分类:
1,编译时被检测的异常
2,编译时不被检测的异常(RuntimeException,及其子类)
自定义格式:
必须是继承Exception类
原因:
异常体系有一个特点,因为异常和异常对象都被抛出,
他们都具备可抛出性,这个可抛出性是Throwable这个体系中独有的特点
只有这个体系中的类和对象可以被throw和throws操作
class TestException extends Exception
{
private int mValues;
TestException()
{
//使用父类构造函数
super();
}
TestException (String p_msg, int p_values)
{
// 使用父类构造函数传入信息
super(p_msg);
this.mValues = p_values;
}
}
class Demo
{
int div(int a,int b) throws Exception//在功能上通过throws的关键字可以声明有可能会出现问题
{
if(b < 0)
{
//手动通过throws抛出自定义的异常
throw new TestException("出现除数是负数的情况了");
}
return a/b;
}
}
五 throws和throw的区别
throws使用在函数上,后面跟的异常类可以有多个,用逗号隔开
throw使用在函数内部,后面跟的是异常类的对象
六 RuntimeException
Exception中有一个特殊的子类异常RuntimeException运行时异常
如果在函数内容抛出该异常,函数上可以不用声明,编译一样通过
如果在函数上声明了该异常调用者可以不用进行处理
版权声明:欢迎交流指正文章的错误,必定虚心接受,QQ872785786
原文地址:http://blog.csdn.net/qq_22075977/article/details/46848443