gpt4 book ai didi

Java异常: throw back or send as return (function output)?

转载 作者:行者123 更新时间:2023-12-02 09:50:04 25 4
gpt4 key购买 nike

用法如下:我正在编写旨在执行特定功能/任务的类和函数(例如 createBuilding、destroyBuilding 等)。我遵循的设计是该函数不处理/处理任何错误情况。如果出现错误/异常,调用者有责任采取适当的操作。我可以通过两种方式做到这一点:

public void caller {
try {
A.createBuilding();
catch (Exception e) {
process exception
}
}

第一种方法:

public class A {
public String createBuilding throws Exception {
try {
blah blah blah
catch (Exception e) {
throw new Exception(e);
}
}

第二种方法:

public class A {
public String createBuilding {
StringBuffer sb = new StringBuffer();
try {
blah blah blah
catch (Exception e) {
sb.add(e.toString());
}
return sb.toString();
}

The user in the second case does the following:
public void caller throws Exception {
String st = A.createBuilding();
if (st.contains("Exception"))
do something;
}

假设被调用的函数总是返回一个字符串。

对于哪种方法更好有什么评论吗?我忽略了任何陷阱/问题吗?

感谢所有的帮助!!!

最佳答案

当然使用第一个,即使用异常。

第二个破坏了多年的错误处理研究,不要这样做。

原因:如果您使用 Exceptions,您将能够利用 java 中围绕 Thread.uncaughtExceptionHandler 和堆栈跟踪等异常构建的整个错误处理框架。此外,使用 excpetion 是错误处理的首选方式,建议将自定义字符串返回给识别错误

关于Java异常: throw back or send as return (function output)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7208953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com