gpt4 book ai didi

design-patterns - 最佳实践错误处理

转载 作者:行者123 更新时间:2023-12-04 07:18:54 27 4
gpt4 key购买 nike

我想知道用 C++、Java、C# 等编程语言处理应用程序中的错误的最佳方法是什么。

我想创建一个地方来存储与错误和警告消息相关的数字。

例如 :

10000 ->“无法读取文件”。
...
20000 -> “缓冲区溢出”。
...
80000 -> “关键的东西”。

我认为用数字映射错误是一个好习惯。无论使用哪种语言显示错误,都更容易找到错误。你们怎么看?有没有更好的方法来做到这一点?

另一点是,如何存储它们,如何创建它们?

一个大的通用枚举是一个很好的解决方案吗?我们是否必须将它们存储在数据库中?在一个文件中?

它应该是 :

  • 很容易在代码中找到错误(即从数字中)。
  • 易于添加新错误(如果错误编号不在同一位置,则不使用两次相同的错误编号可能会很棘手)。

  • 你们怎么看这一切?

    在此先感谢您的帮助和建议!

    最佳答案

    使用错误代码来识别异常并不是一个坏习惯。

    在生产环境中保持日志文件更短非常有用,也可以用于国际化错误消息。

    另一方面,在开发时,收到错误代码而不是带有有意义描述的完整错误消息可能会很烦人。开发人员必须去检查错误代码是关于什么的。

    在我的一个项目(使用 Java)中,我开发了一种混合方法。我的根异常有一个使用 Enum 类的构造函数。 Enum 类包含错误代码列表 + 默认错误消息。就像是:

    public enum ErrorCodes {

    VALIDATION_ERROR(5001, "One of the objects cannot be validated"),
    RESOURCE_NOT_FOUND(4004, "The requested resource does not exist"),

    根异常还有其他构造函数,因此开发人员可以覆盖默认消息:
    public CoreException(ErrorCodes _errorCode, final String message, final Throwable cause) {
    super(message, cause);
    errorCode = _errorCode.getCode();
    }


    public CoreException(ErrorCodes _errorCode, final String message) {
    super(message);
    errorCode = _errorCode.getCode();
    }

    当异常被捕获时,异常处理程序可以决定(基于某些配置设置)记录错误和消息或仅记录错误。
    更复杂的错误处理程序还可以根据错误代码从资源包中查找特定语言的消息。

    关于design-patterns - 最佳实践错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4884001/

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