异常
2015-09-24 16:26
337 查看
/*
* 1.自定义异常
* 需求:在本程序中,对于除数是-1也视为错误,是无法进行运算的
* 那么就需要对这个问题进行自定义的描述
* 当在函数内部出现了throw 抛出异常对象,那么就必须给对应的处理动作
* 要么:try,catch
* 要么:throws给调用者处理
*
* 2.自定义异常
* 必须是自定义类继承Exception
* 继承Exception原因:因为异常类和异常对象都被抛出
* 他们都具备可抛性,这个可抛性是throwable这个体系中独有的特点
*
* 只有这个体系中的类和对象可以被throw 和throws抛出
*
* 注:throws 和throw区别
* throws定义在函数上,throw定义在函数内
*
* 3.对于RuntimeException及其子类异常,
* 无论在函数内throw抛异常,函数上可以不用声明,编译一样通过
* 还是函数上throws抛出异常,调用者可以不用进行处理,编译一样通过
* 运行时异常之所以不处理,需要让程序停掉,给程序员明确指示要改代码
*
* 自定义异常:如果该异常的发生无法进行后续程序
* 就让自定义异常继承RuntimeException
*
* 4.对于异常分两种:
* 1)编译时被检测的异常
* Exception,如果函数中throw new Exception(),则函数上要有throws Exception()或者try catch(必须要有问题才叫解决),
* 调用者可以throws Exception()或者内部try ,catch捕获
* 2)编译时不被检测的异常(运行时异常,RuntimeException以及其子类)
*
*
*/
public class DefineException extends Exception {
private int num;
public DefineException() {
// TODO Auto-generated constructor stub
}
DefineException(String msg,int num){
super(msg);
this.num=num;
}
public int getNum(){
return num;
}
//******************************************************
public class DemoException {
public static int div(int a,int b) throws DefineException{
if(b<0){
throw new DefineException("出现了负数",b);
}
return a/b;
}
public static void main(String[] args) {
try {
int x=
div(4,-1);
System.out.println(x);
}
//这里捕获 throw new DefineException("出现了负数",b)对象, 也即 e
catch (DefineException e) {
// TODO Auto-generated catch block
//System.out.println(e.toString());
e.printStackTrace();
System.out.println("错误的负数是"+e.getNum());
}
}
}
* 1.自定义异常
* 需求:在本程序中,对于除数是-1也视为错误,是无法进行运算的
* 那么就需要对这个问题进行自定义的描述
* 当在函数内部出现了throw 抛出异常对象,那么就必须给对应的处理动作
* 要么:try,catch
* 要么:throws给调用者处理
*
* 2.自定义异常
* 必须是自定义类继承Exception
* 继承Exception原因:因为异常类和异常对象都被抛出
* 他们都具备可抛性,这个可抛性是throwable这个体系中独有的特点
*
* 只有这个体系中的类和对象可以被throw 和throws抛出
*
* 注:throws 和throw区别
* throws定义在函数上,throw定义在函数内
*
* 3.对于RuntimeException及其子类异常,
* 无论在函数内throw抛异常,函数上可以不用声明,编译一样通过
* 还是函数上throws抛出异常,调用者可以不用进行处理,编译一样通过
* 运行时异常之所以不处理,需要让程序停掉,给程序员明确指示要改代码
*
* 自定义异常:如果该异常的发生无法进行后续程序
* 就让自定义异常继承RuntimeException
*
* 4.对于异常分两种:
* 1)编译时被检测的异常
* Exception,如果函数中throw new Exception(),则函数上要有throws Exception()或者try catch(必须要有问题才叫解决),
* 调用者可以throws Exception()或者内部try ,catch捕获
* 2)编译时不被检测的异常(运行时异常,RuntimeException以及其子类)
*
*
*/
public class DefineException extends Exception {
private int num;
public DefineException() {
// TODO Auto-generated constructor stub
}
DefineException(String msg,int num){
super(msg);
this.num=num;
}
public int getNum(){
return num;
}
//******************************************************
public class DemoException {
public static int div(int a,int b) throws DefineException{
if(b<0){
throw new DefineException("出现了负数",b);
}
return a/b;
}
public static void main(String[] args) {
try {
int x=
div(4,-1);
System.out.println(x);
}
//这里捕获 throw new DefineException("出现了负数",b)对象, 也即 e
catch (DefineException e) {
// TODO Auto-generated catch block
//System.out.println(e.toString());
e.printStackTrace();
System.out.println("错误的负数是"+e.getNum());
}
}
}
相关文章推荐
- php数组操作小结
- C++开源矩阵计算工具——Eigen的简单用法
- Android的多线程与异步任务3-使用AsyncTask快速实现异步任务
- (绝对有用)iOS获取UUID,并使用keychain存储
- 《大话数据结构》之单链表
- IDropTarget 封装 让窗口支持拖放(文件,文本,URL...)
- GLib介绍与使用
- 从源代码剖析Mahout推荐引擎
- BigDecimal 的舍入模式
- jfinal为weebox弹出框传递参数
- 关于360断网急救箱引发的探索
- 对于Windows传感器开发的一些感悟
- 备注:smush.it 接口
- hihoCoder 1227 The Cats' Feeding Spots 2015北京赛区网络赛
- 【TCO2013 3B】ToastJumping
- C语言strcpy,strncpy的用法
- hdu3045 Picnic Cows
- 细节定成败 部署Win Server 2012十项注意
- MSBuild入门(续)
- Xcode7 集成百度地图静态库以及百度坐标火星坐标的互相转换