在自定义异常时,应如何派生?必须在Throwable类层次结构中派生,否则将不能在应用程序中传播异常。另外,不能从Throwable直接派生。Throwable为两类主要问题(Exception和Error)提供行为基础,不能为这棵继承树定义新分支。一般也不要直接继承Error或其任何子类,因为自定义异常通常不符合错误标准(即适当应用程序不应试图捕获的严重问题)。
一般我们自己定义的异常分为检查型异常checked(编译时异常:Exception和它的子类)和非检查型异常non-checked(运行时异常:RuntimeException和它的子类)。
以下两个例子表明的区别是:除非派生一个非检测异常类(RuntimeException或Error),否则调用方法的任何对象随后将按照“处理或声明”规则解决该异常。
RuntimeException:
package baal.exception;
public class BaalException extends RuntimeException {
public BaalException() {
}
public BaalException(String message) {
super(message);
}
}
package baal.exception;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Tester tester=new Tester();
tester.getNo1("baal");
}
}
package baal.exception;
public class Tester {
public void getNo1(String a) {
if("baal".equals(a))throw new BaalException("String is baal");
}
}
运行控制台信息:
Exception in thread "main" baal.exception.BaalException: String is baal
at baal.exception.Tester.getNo1(Tester.java:8)
at baal.exception.Main.main(Main.java:12)
Exception:
package baal.exception;
public class BaalException extends Exception {
public BaalException() {
}
public BaalException(String message) {
super(message);
}
}
package baal.exception;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Tester tester=new Tester();
try {
tester.getNo1("baal");
} catch (BaalException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package baal.exception;
public class Tester {
public void getNo1(String a) throws BaalException {
if("baal".equals(a))throw new BaalException("String is baal");
}
}
运行控制台的结果:
baal.exception.BaalException: String is baal
at baal.exception.Tester.getNo1(Tester.java:8)
at baal.exception.Main.main(Main.java:13)
分享到:
相关推荐
Java自定义异常处理详细介绍,包括了很多比较经典的案例,可以自己研究自定义异常
23.java自定义异常.zip23.java自定义异常.zip23.java自定义异常.zip23.java自定义异常.zip23.java自定义异常.zip23.java自定义异常.zip23.java自定义异常.zip23.java自定义异常.zip23.java自定义异常.zip23.java...
java 自定义异常实例二 java 自定义异常实例二
java 自定义异常实例一 java 自定义异常实例一
java基本语法,自定义异常类
java 自定义异常--编译异常和运行异常2种;Java异常机制可以保证程序更安全和更健壮。虽说Java类库已经提供很多可以直接处理异常的类,但是有时候为了更加地捕获和处理异常以呈现更好的用户体验,需要开发者自定义...
Java自定义异常类_1.txtJava自定义异常类_1.txt
Exception JAVA 自定义异常 Exception JAVA 自定义异常 Exception
Java自定义异常源代码,一个很好的学习例子,源代码很浅显易懂!!!
在实际项目中一般自定义异常的方法,通常把一个业务逻辑抽象成一个常量类
自己编写异常类型 ,自定义错误异常进行全局捕捉。实现项目全局的拦截定义输出。。。
java自定义异常,java自定义异常的介绍,如何创建自定义异常,如何使用自己创建的自定义异常。
Java 自定义异常和抛出异常的练习demo
java自定义异常类之用户登录,帮助大家更好的理解之定义异常。
Java自定义异常类_2.txtJava自定义异常类_2.txtJava自定义异常类_2.txt
Java自定义异常归纳总结_北京动力节点Java黄埔军校整理
浅谈Java自定义异常在教学中的教与学.pdf
浅谈Java自定义异常在教学中的教与学
java 自定义异常(基础)(csdn)————程序
Java SE程序 自定义异常类Java SE程序 自定义异常类Java SE程序 自定义异常类Java SE程序 自定义异常类Java SE程序 自定义异常类Java SE程序 自定义异常类Java SE程序 自定义异常类Java SE程序 自定义异常类Java SE...