演示自定义异常继承 java
demonstrate custom exceptions inheritance java
有人要求我演示在自定义异常上使用继承。这就是我被问到的:
创建一个名为 MyException 的 class:
- 使用继承,创建两个异常classes:Exception1和Exception2;
- 每个 class 都应该有适当的构造函数,在使用时它们会提供相关消息,例如分别为“异常 1”和“异常 2”;
所以我创建了 MyException,它继承自 java.lang.Exception:
public class MyException extends Exception{
//default constructor
public MyException() {}
//constructor that accepts a message
public MyException(String message){
super(message);
}
然后我创建了 Exception1 和 Exception2,但它们是空的
public class Exception1 extends MyException {
}
public class Exception2 extends MyException {
}
尽管有效,但我认为我的方法不正确。
这是我测试它的方法。
//demonstrate use of custom exceptions
try{
if(true) {throw new Exception1();}
}catch (Exception1 e){
System.out.println("exception1 thrown");
}
try{
if(true) {throw new Exception2();}
}catch (Exception2 e){
System.out.println("exception2 thrown");
}
我怎样才能正确地做到这一点?我应该在 Exception1 和 Exception2 classes 中放入什么?
您不应打印抛出的异常,而应打印 Exception.getMessage()
结果,否则在这种情况下,包含消息的异常没有意义。
try{
throw new Exception1("This is thrown intentionally");
}catch (Exception1 e){
System.err.println(e.getMessage());
}
您还可以在异常中添加自定义方法或附加消息,或者,例如,它们可以从更具体的异常中扩展(更好的做法)。
仅此而已。
自定义异常示例:
public class MyException extends Exception {
public MyException() {
super();
}
public MyException(String msg){
super(msg);
}
public MyException(String msg, Exception cause){
super(msg, cause);
}
public static void main(String[] args) {
try {
throw new MyException();
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
}
有人要求我演示在自定义异常上使用继承。这就是我被问到的: 创建一个名为 MyException 的 class: - 使用继承,创建两个异常classes:Exception1和Exception2; - 每个 class 都应该有适当的构造函数,在使用时它们会提供相关消息,例如分别为“异常 1”和“异常 2”;
所以我创建了 MyException,它继承自 java.lang.Exception:
public class MyException extends Exception{
//default constructor
public MyException() {}
//constructor that accepts a message
public MyException(String message){
super(message);
}
然后我创建了 Exception1 和 Exception2,但它们是空的
public class Exception1 extends MyException {
}
public class Exception2 extends MyException {
}
尽管有效,但我认为我的方法不正确。 这是我测试它的方法。
//demonstrate use of custom exceptions
try{
if(true) {throw new Exception1();}
}catch (Exception1 e){
System.out.println("exception1 thrown");
}
try{
if(true) {throw new Exception2();}
}catch (Exception2 e){
System.out.println("exception2 thrown");
}
我怎样才能正确地做到这一点?我应该在 Exception1 和 Exception2 classes 中放入什么?
您不应打印抛出的异常,而应打印 Exception.getMessage()
结果,否则在这种情况下,包含消息的异常没有意义。
try{
throw new Exception1("This is thrown intentionally");
}catch (Exception1 e){
System.err.println(e.getMessage());
}
您还可以在异常中添加自定义方法或附加消息,或者,例如,它们可以从更具体的异常中扩展(更好的做法)。
仅此而已。
自定义异常示例:
public class MyException extends Exception {
public MyException() {
super();
}
public MyException(String msg){
super(msg);
}
public MyException(String msg, Exception cause){
super(msg, cause);
}
public static void main(String[] args) {
try {
throw new MyException();
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
}