还有就是我们有必要处理异常吗?
最经小头儿给了我一个活,要我根据一些参数算保费。
根据用户的参数不同算法也不同,我基本上都实现了。
现在我想的问题是异常处理部分,首先我们共同的意识是
业务逻辑的判断不应该我们来做,但是他提出了一些问题,
表示了一些担忧(此人技术感觉不是很强),认为还是在function里面
进行一些异常判断,比如我代码中有累加的情况,他说如果你求出的
情况有null的,那么累加时会怎么样?等等一些。我试了试,总结一句话,
oracle不像java那样有异常处理,好像只要一出异常就立即返回null。
一 我的结论对不对?
二 我该怎么对他说?
最经小头儿给了我一个活,要我根据一些参数算保费。
根据用户的参数不同算法也不同,我基本上都实现了。
现在我想的问题是异常处理部分,首先我们共同的意识是
业务逻辑的判断不应该我们来做,但是他提出了一些问题,
表示了一些担忧(此人技术感觉不是很强),认为还是在function里面
进行一些异常判断,比如我代码中有累加的情况,他说如果你求出的
情况有null的,那么累加时会怎么样?等等一些。我试了试,总结一句话,
oracle不像java那样有异常处理,好像只要一出异常就立即返回null。
一 我的结论对不对?
二 我该怎么对他说?
--oracle有异常处理,很强大,不比java弱~~~
create or replace function...
...
beginexception
when others then
--写你想要做的事
end;
楼上能不能多几个when,我不是很懂。针对具体语法给个例子,exception
EXCEPTION
when others then
dbms_output.put_line('计算出现错误');
return -1;大哥们我简单处理了,只要出错,返回-1,只要对方知道这是错误也就算完成了。
问题是那句打印不知道输出到哪里了。dbms_output.put_line('计算出现错误');
--这个打印,你运行时是没保存的,你要不写进文本,要不写到表里
--在plsql中调试运行,可以从窗口中看到打印的信息
...
exception
when others then
insert into table(a) values (sqlcode || sqlerrm); --这是写进表里
或者:
utl_file包写文件
end;