Design patterns 开源代码中的异常处理(try-catch)

Design patterns 开源代码中的异常处理(try-catch),design-patterns,exception-handling,try-catch,Design Patterns,Exception Handling,Try Catch,最后,我计划写开源项目,但我深感困惑。我知道在我的代码中使用异常处理机制是个好主意,但我看到的大多数开源项目(即使是流行的项目)都不使用try…catch和异常。为什么?如果我在开源代码中使用它们,会发生什么坏事 但是我看到的大多数开源项目(即使是流行的项目)都没有使用try…catch和exceptions 用于开发框架的基础语言将极大地影响您的策略,即您的框架可以或应该如何处理错误条件。不同的编程语言有不同的异常处理机制。 例如,Java有检查异常的概念,开发人员被迫处理或传播给调用方。另一

最后,我计划写开源项目,但我深感困惑。我知道在我的代码中使用异常处理机制是个好主意,但我看到的大多数开源项目(即使是流行的项目)都不使用try…catch和异常。为什么?如果我在开源代码中使用它们,会发生什么坏事

但是我看到的大多数开源项目(即使是流行的项目)都没有使用try…catch和exceptions

用于开发框架的基础语言将极大地影响您的策略,即您的框架可以或应该如何处理错误条件。不同的编程语言有不同的异常处理机制。 例如,Java有检查异常的概念,开发人员被迫处理或传播给调用方。另一方面,C#没有检查异常的概念。您所指的框架可能使用的语言本身没有检查异常的概念

让我们举个例子。假设您想要构建一个框架来读取分隔文件并将其加载到内存(对象)中。编写一个层,负责根据程序员提供的文件名和路径读取文件。在这样的框架中,一个非常常见的例外情况是文件或路径的名称无效。如果您是用Java构建框架的,那么很可能您使用了Java提供的一个文件读取API来读取文件。java中的大多数文件读取API都会抛出开发人员必须处理或传播的已检查异常(
FileNotFoundException
)。如果您选择的语言本身迫使您处理异常,那么您肯定会遇到这样一种情况:您别无选择,只能使用该语言提供的异常框架

为什么??如果我在开源代码中使用它们,会发生什么坏事

异常处理的真正问题在于此功能的正确使用(特别是在具有检查异常概念的语言中)。没有经验或懒惰的程序员可能会简单地滥用此功能,将异常一直传递到应用程序的起点;仅允许运行时环境处理异常。下面的代码片段演示了这样一种滥用:

public static String loadData(String fileName)throws FileNotFoundException {
    String resource = ResourceManager.getResource(fileName);
    //code to read the file
}

public static boolean containsText(String fileName,String text)throws FileNotFoundException {
    String contents = loadData(fileName);
    if(contents.contains(text)) {
       return truel
    }
    return false;
 }

 public static void main(String []args)throws FileNotFoundException {
    containsText("/home/abc.txt","Account Number");
 }

滥用此功能的另一种方法是构建一个API,该API会抛出太多已检查的异常。这将要求API用户编写比实际业务/应用程序逻辑更多的异常处理代码。

这些开源项目使用什么替代方法来代替try/catch?@jaco0646他们只是返回值以标记errors@Fresher你指的是什么语言??异常处理策略基本上是面向语言的。例如:Java社区非常相信检查异常,而.net用户认为它是一种反模式。如果你提到大多数脚本语言,情况就大不相同了。@supunvyjerathnePHP@Fresher你能链接一下你发现的任何一个开源php项目,它根本不使用try-catch吗??