异常
来源:互联网 发布:对网络语言的看法800字 编辑:程序博客网 时间:2024/05/17 21:44
/*
* 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;
* 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());
}
}
}
0 0
- 异常
- 异常!
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 算法篇第一:关联规则算法之Apriori(1)
- Genymotion
- mysql读写分离(二)-----主从复制
- hdu1203 I NEED A OFFER!(01背包)
- 笔记123--viewpager一页显示多个item
- 异常
- 如何实现上拉加载,默认加载10条数据,上拉再加载10条数据。
- linux应用编程笔记(3)addr.c分析linux应用程序地址布局
- sql server2005分页rownumber()
- MOSFET选型注意事项及应用实例
- 【集训队作业】MONOPLOY
- 搜索的时候,不改变页数。
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- 让你的Chrome App支持多语言(i18n)