Syntax 是否有编程语言迫使您处理所有可能的错误?

Syntax 是否有编程语言迫使您处理所有可能的错误?,syntax,syntax-error,robustness,Syntax,Syntax Error,Robustness,有很多编程语言可以忽略错误,这甚至是默认错误 例如,想象一下perl: eval { ... }; # not doing anything with $@ 或PHP,您可以在其中显式忽略错误: @function_that_fails(); 而且,一切都可能失败 但是有没有一种编程语言可以强迫你处理每一个错误呢?所以基本函数都可以工作,或者有很多错误,那么依赖它们的函数也可以处理每一个错误,这些函数之上的函数也可以,等等? 不像一棵大树。一个函数可能会以10种不同的方式失败,但对于调用函数

有很多编程语言可以忽略错误,这甚至是默认错误

例如,想象一下perl:

eval { ... };
# not doing anything with $@
或PHP,您可以在其中显式忽略错误:

@function_that_fails();
而且,一切都可能失败

但是有没有一种编程语言可以强迫你处理每一个错误呢?所以基本函数都可以工作,或者有很多错误,那么依赖它们的函数也可以处理每一个错误,这些函数之上的函数也可以,等等? 不像一棵大树。一个函数可能会以10种不同的方式失败,但对于调用函数来说,它失败才是重要的,因此您可以同样地处理fail#3、fail#4、…、fail#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:
    ...
或者对每个函数都是这样

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

有没有什么,甚至是实验性的语言迫使你这么做