明确抛出异常在程序中的应用和优势是什么?例如,如果我们具体考虑Ada语言,在程序中提供了一个接口来引发异常。示例:
raise <Exception>;
但是,我们需要明确提出异常的优势和应用领域是什么呢?
例如,在一个将参数之一设为字符串的过程中:
function Fixed_Str_To_Chr_Ptr (Source_String : String) return C.Strings.Chars_Ptr is
...
begin
...
-- Check whether source string is of acceptable length
if Source_String'Length <= 100 then
...
else
...
raise Constraint_Error;
end if;
return Ptr;
exception
when Constraint_Error=>
.. Do Something..
end Fixed_Str_To_Chr_Ptr;
如果我在上述函数中引发异常并在传递的字符串长度边界超出可容忍限制时进行处理,是否有任何优势或良好做法?还是简单的if-else处理程序逻辑就足够了?
else
部分中执行“.. Do Something ..”。 - Simon Wrightwhen E : others =>
这样的“其他”情况,在设计(专业产品中的)异常处理程序时,是否是一种好方法,尤其是当您真的不知道将来可能会引发哪些异常?或者我们应该限定在我们分析过的可能引发的异常范围内? - Akay