中易网

java如何自定义一个可捕获的异常

答案:2  悬赏:70  
解决时间 2021-01-07 23:58
java如何自定义一个可捕获的异常
最佳答案
1)先定义一个类继承Exception(或者别的RuntimeException等);
2)然后写个方法可能抛出这个异常,并且什么情况下会抛出异常;
3)调用这个方法,写try,catch语句,捕获这个异常;
小例子,你参考看下:
class UserNotFoundException extends RuntimeException {
public UserNotFoundException() {}

public UserNotFoundException(String message) {
super(message);
}
public void f() throws UserNotFoundException {
throw new UserNotFoundException("用户名不对");


}

public class Exception  {
public static void main(String args[]) {
try {
new UserNotFoundException().f();
} catch (UserNotFoundException e) {
System.out.println(e.getMessage());
}
}
}
全部回答
首先自定义一个异常类
public class ActionException extends Exception{
public String returnMessage;
public ActionException(String returnMessage){
this.returnMessage = returnMessage;
}
public String getReturnMessage(){
return this.returnMessage;
}
代码中如果用到这个自定义的异常类,这里的代码只是做了个演示
private void validate(int a,int b)throws ActionException{
if(a>b){
throw new ActionException("a > b");
}
if(a throw new ActionException("a < b");
}
}
业务逻辑代码中
public String process(){
try{
validate(a,b);
}catch(ActionException ae){
System.out.println(ae.getReturnMessage());
}
}追问你这样的写法,针对一种业务逻辑,在程序中判断手动的去抛异常
假设validate()方法,出现了其他异常,上层就没法捕获了
我想要的是,假设我自定义了一个BusinessException为业务异常,它可以程序中处理所有的业务层异常,功能几乎可以等价于RunTimeException
就像一些开源框架中的自定义异常,我并没有显示的throw或者是throws它的自定义异常,但是程序依然可以捕获的到
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一嗨租车和神州租车哪个会更好一些,有没有收
作为员工晋升线长面试时该说些什么?
Tom wants to weur it翻译过来是什么
太原到灵丘县多少公里小时查询,太原至灵丘县
德利丰家居的大岩板有哪几款是拼花的?
LOL英雄联盟OMG战队是不是就要解散了???
上海市居住证换地方住了需要重新办吗?我是去
我用盐水把花蛤泡死了
为什么说F1是最烧钱的运动?
抛开三国演义,史实而言关羽和张辽到底谁更
来个大神回答一下
求一篇写在手抄报上的短文300字左右
急用,快点!
佛本是道里面周青有几个徒弟?他们的结局最后
系统弹出错误0x76684181指令引用的0
推荐资讯
文物学的定义?
恶魔在身边第二部叫什么名字
我想学电焊,什么步骤方法?
哪位聚聚能晒一下参加snh48签名会合影会的签
卖陕西红富士苹果的广告词
2.7x9.9 0.27的简算
10(?+1)-5(0.2?+1)=1
仙一中的经典台词?
平背德牧好吗!!!跟弓背最大区别
运动会加油稿50字以上,15篇,不能抄袭,抄袭
减肥,一个月瘦15斤【绿色健康】
球球的英文球球如果作为英文名字 应该怎么说
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?