首页 > 解决方案 > 是否有编程语言迫使您处理所有可能的错误?

问题描述

有很多编程语言可以简单地忽略错误,这甚至是默认设置。

想象一下 perl 例如:

eval { ... };
# not doing anything with $@

或 PHP,您可以在其中显式忽略错误:

@function_that_fails();

此外,一切都可能失败。甚至叉

但是有没有一种编程语言可以强迫你处理每一个错误?这样基本函数要么都可以工作,要么有很多错误,然后依赖它们的函数也处理每个错误,而在这些函数之上的函数也可以等等?不像一棵大树。也许一个函数可能会以 10 种不同的方式失败,但对于调用者函数来说,只有失败才是重要的,所以你可以同样处理失败 #3、失败 #4、...、失败 #10。

但是这样你就必须明确地写:

try:
    myfunction()
catch Error_Type_1:
    ...
catch Error_Type_2:
    ...
catch Error_Type_3 and Error_Type_4 and Error_Type_5 and Error_Type_6 and Error_Type_7 Error_Type_8 and Error_Type_9 and Error_Type_10:
    ...

或类似的东西为每个功能。

这有时会很乏味,但它不会导致更健壮的代码吗?

是否有任何甚至是实验性的语言迫使你这样做?

标签: syntaxsyntax-errorrobustness

解决方案


推荐阅读