我必须编写自己的异常吗? - Java
Do I have to write my own Exceptions? - Java
我目前正在 Java 学习编程。
我经常遇到我想妥善处理的异常。关于这一点,我问自己,当我想抛出一个有效的异常时,是否必须创建自己的异常。
我知道 API 中已经有很多我可以使用的 Java-例外情况(显然很少会遇到我想要表达的确切情况)。
我可以想象这是正常的,但创建一个自己的异常对我来说似乎真的很昂贵,因为它带来的结果。
这在编程中通常是如何完成的?为每个案例创建异常是否正常?
非常感谢!
异常用于帮助您查看程序中哪里发生了错误。有时您可能希望自定义异常以向最终用户显示一条消息,说明出现了意外情况。
例如,如果用户在文本字段中输入信息,而他们在邮政编码字段中输入的是字母而不是数字,则可能是您决定向他们显示一条消息并允许他们重试。
创建自定义例外非常容易。所有异常都是 Exception class 的子 classes,因此您需要做的就是在 CustomException class.
中扩展 Exception
归根结底 -- 您对所有内容都有例外的设计决定是什么。如果你能为他们提出一个有效的论据,那就去吧。
这完全取决于您希望用户端看到什么。您绝对不希望最终用户看到未使用 try and catch 包装的函数抛出的异常。这可能只是抛出堆栈错误并停止应用程序。您应该将方法包装在 try 和 catch 中。
我通常做的是,建立一个包含错误的 XML 文件,并根据匹配显示一个友好的错误,也就是说,如果用户不够高级,无法理解这些错误,大多数时候都是这样。
它在 Java 中得到了很好的支持并且相当容易实现。与了解发生的意外情况的好处相比,成本是微不足道的。
创建一个 class 扩展异常 class。
public class SampleException extends Exception{
private String message;
public SampleException() {
}
public SampleException(String message) {
this.message = message;
}
public String getMessage() {
return this.message;
}
}
抛出自定义异常:
throw new SampleException("Something happen!!!")
我目前正在 Java 学习编程。
我经常遇到我想妥善处理的异常。关于这一点,我问自己,当我想抛出一个有效的异常时,是否必须创建自己的异常。
我知道 API 中已经有很多我可以使用的 Java-例外情况(显然很少会遇到我想要表达的确切情况)。
我可以想象这是正常的,但创建一个自己的异常对我来说似乎真的很昂贵,因为它带来的结果。
这在编程中通常是如何完成的?为每个案例创建异常是否正常?
非常感谢!
异常用于帮助您查看程序中哪里发生了错误。有时您可能希望自定义异常以向最终用户显示一条消息,说明出现了意外情况。
例如,如果用户在文本字段中输入信息,而他们在邮政编码字段中输入的是字母而不是数字,则可能是您决定向他们显示一条消息并允许他们重试。
创建自定义例外非常容易。所有异常都是 Exception class 的子 classes,因此您需要做的就是在 CustomException class.
中扩展 Exception归根结底 -- 您对所有内容都有例外的设计决定是什么。如果你能为他们提出一个有效的论据,那就去吧。
这完全取决于您希望用户端看到什么。您绝对不希望最终用户看到未使用 try and catch 包装的函数抛出的异常。这可能只是抛出堆栈错误并停止应用程序。您应该将方法包装在 try 和 catch 中。
我通常做的是,建立一个包含错误的 XML 文件,并根据匹配显示一个友好的错误,也就是说,如果用户不够高级,无法理解这些错误,大多数时候都是这样。
它在 Java 中得到了很好的支持并且相当容易实现。与了解发生的意外情况的好处相比,成本是微不足道的。
创建一个 class 扩展异常 class。
public class SampleException extends Exception{
private String message;
public SampleException() {
}
public SampleException(String message) {
this.message = message;
}
public String getMessage() {
return this.message;
}
}
抛出自定义异常:
throw new SampleException("Something happen!!!")