处理异常并从函数返回结果 [英] Handling EXCEPTION and return result from function
本文介绍了处理异常并从函数返回结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我的代码
CREATE OR REPLACE FUNCTION test_excep (arg INTEGER) RETURNS INTEGER
AS $$
DECLARE res INTEGER;
BEGIN
res := 100 / arg;
BEGIN
EXCEPTION
WHEN division_by_zero
THEN RETURN 999;
END;
RETURN res;
END;
$$
LANGUAGE plpgsql;
也就是说,如果被零除,我需要返回"999",但这是:SELECT test_excep(0)
That is, I need returned "999", if happened division by zero, but this: SELECT test_excep(0)
返回错误:division by zero
CONTEXT: PL/pgSQL function test_excep(integer) line 4 at assignment
returns error: division by zero
CONTEXT: PL/pgSQL function test_excep(integer) line 4 at assignment
我的代码有什么问题?
推荐答案
EXCEPTION
子句必须与异常位于同一块中.
The EXCEPTION
clause needs to be in the same block as the exception.
例如:
CREATE OR REPLACE FUNCTION test_excep (arg integer)
RETURNS integer
AS
$func$
DECLARE
res INTEGER;
BEGIN
res := 100 / arg;
RETURN res;
EXCEPTION
WHEN division_by_zero
THEN RETURN 999;
END
$func$
LANGUAGE plpgsql;
这篇关于处理异常并从函数返回结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文