指示 Func/Proc 抛出异常(如 Java)。最佳实践?

Posted

技术标签:

【中文标题】指示 Func/Proc 抛出异常(如 Java)。最佳实践?【英文标题】:Indicate that a Func/Proc throws an Exception (like Java). Best Practice? 【发布时间】:2016-04-15 06:55:14 【问题描述】:

我对 PLSQL 比较陌生,但我有 Java 方面的背景。 因此,我想知道是否有一种优雅的方式来编写过程或函数来指示它们引发的异常,或者至少表明它们正在引发异常。

我已经想到了程序名称的后缀,例如proc_name_ex 但我对此不太满意。

提前感谢您的想法! :)

【问题讨论】:

不是几乎所有的过程和函数都以 _ex 后缀结尾吗?这会有什么用?也许您可以为我们这些不懂 Java 的人更详细地解释一下这个想法。 【参考方案1】:

唯一允许您指示子程序是否引发异常的语言结构是comment。

但是有一种语言结构可以保证子程序不引发异常 - when others exception handler 保证捕获所有异常:

declare
  a pls_integer;
begin
  a := 1/0;
exception -- exception section
  when others then --exception handler
    -- here you should process the exception in some clever way that
    -- makes sense in the context
end;
/

我不建议将异常信息编码到子程序名称中。

【讨论】:

以上是关于指示 Func/Proc 抛出异常(如 Java)。最佳实践?的主要内容,如果未能解决你的问题,请参考以下文章

java.lang.NullPointerException- 如何处理空指针异常

java是如何处理异常的?

JVM-JVM 是如何处理异常的

《Effective Java》第9章 异常

java中如何一次抛出多个异常

java中如何抛出异常后继续运行