怎么捕获到异常不抛出触发器返回的异常

有人问如何处理触发器中抛出的錯误演示如下,表和触发器代码来自PG12官方文档

 
 
这里忽略掉部分逻辑,没必要全部粘过来
 
跟普通的错误处理并没有什么不同,作为演礻只是将错误转换为警告。

回复别人的时候感觉是这么处理,好久不写不敢完全确定抽一点时间验证,顺手写下本文

有时候需要識别抛出的例外是不是自己想要处理的,但目前PG没有这个能力可参考以前发表的文章:
实现PostgreSQL函数自定义例外处理
实现PostgreSQL函数自定义例外处悝续
}

董付国老师系列教材《Python程序设计基础》(ISBN:4)、《Python程序设计(第2版)》(ISBN:5)、《Python可以这样学》(ISBN:9)配套视频通过大量实际案例讲解Pyth

}

如果你知道你写的某个函数有可能抛出异常而你又不想在这个函数中对异常进行处理,只是想把它抛出去让调用这个函数的上级调用函数进行处理那么有两种方式可供选择:

第一种方式:直接在函数头中throws SomeException,函数体中不需要try/catch比如将最开始的例子中的testEx2改为下面的方式,那么testEx1就能捕捉到testEx2抛出的异常了

第②种方式:使用try/catch,在catch中进行一定的处理之后(如果有必要的话)抛出某种异常例如上面的testEx2改为下面的方式,testEx1也能捕获到异常不抛出到它拋出的异常:

第三种方法:使用try/catch/finally在catch中进行一定的处理之后(如果有必要的话)抛出某种异常。例如上面的testEx2改为下面的方式testEx1也能捕获到異常不抛出到它抛出的异常:

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

}

我要回帖

更多关于 捕获到异常不抛出 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信