occi有没有不抛异常的方式?

w_anthony 2008-03-22 10:43:10
如果出错就直接返回空或者失败,而不是抛异常的方式,occi支持么?Y or N?
...全文
58 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
w_anthony 2008-03-22
  • 打赏
  • 举报
回复
所以才说是“除非是必须要得到异常的原因,不然没多少必要使用异常”啊。
这里的异常种类就是一个SQLException,而我所作的应用根本不关心出异常的原因,失败就不做好了。
如果有不抛异常的方法就好了……
iihero_ 2008-03-22
  • 打赏
  • 举报
回复
所以,你就有必要知道什么样的异常可以继续执行,什么样的,要果断中止。
在旧的C代码里头,我们会看到大量的
if(!...)
{
goto ReleaseMem;
}
if(!...)
{
goto ....;
}


ReleaseMem:
doFreeMem();
exit(-1);
w_anthony 2008-03-22
  • 打赏
  • 举报
回复
要是LS那样写,func1()出了异常,func2()就不执行了啊。

竟然没有……
iihero_ 2008-03-22
  • 打赏
  • 举报
回复
确实没有。
看来楼主的代码风格还是沿袭C的风格。
异常是个两刃剑,用好了以后,一样的无往不利。
逻辑简单的化,大可以
{
try
{
func1();
func2();
}
catch(...)
{
}
}

没有必要每个func都单独开一个try, catch。
相反,你的if()那种风格得不断的重复
w_anthony 2008-03-22
  • 打赏
  • 举报
回复
不太喜欢使用异常这种处理方式,就比如函数bool func1(), bool func2(),如果不抛异常返回false表示失败,可以这么写:

{
if (func1())
{
}
if (func2())
{
}
}

要是抛异常,就要这么写

{
try
{
func1();
}
catch(...)
{
}
try
{
func2();
}
catch(...)
{
}
}

感觉很累赘,除非是必须要得到异常的原因,不然没多少必要使用异常……

BerkeleyDb也是默认抛异常的,不过初始化的时候可以设置为不抛异常,改为返回失败。
occi有没有类似的接口?如果没有就算了……
iihero_ 2008-03-22
  • 打赏
  • 举报
回复
OCCI里边用的就是异常的形式,你直接在代码里边catch就是了。
异常是比较流行的处理方式。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧