关于和数据库交互时的catch问题 当我在后台用ExecuteNonQuery执行存储过程,然后运行时,当存储过程内放生错误,例如(主键冲突)之类的错误。在后台里,用catch能捕获到否。如果能,那是catch什么Exception? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你自己故意错误执行一次,让系统抛出exception,然后catch这个exception看看是什么Exception就行了 问题是我没catch到,但是很多人告诉我可以catch的 我关键就是想知道,如果用了存储过程,是否能catch到存储过程内发生错误! 可以catch到存储过程内发生错误 可以在建存储过程的时候利用 定义output类型的参数作为异常返回值,在过程里面写catch并把错误保存到output参数中,执行完存储过程,先判断该参数,并通过该参数获取异常。 这个就是关键,如果可以在后台直接用catch捕获,那又用output做什么呢? 你自己故意错误执行一次,让系统抛出exception,然后catch这个exception看看是什么Exception就行了这个方法不行吗 catch是让你不收到系统错误,页面crash,catch了就可以仿佛sp运行没有错一般,然后把output输出到页面上。一般可以结合Transaction来做,如果catch到错误,就rollback,那么对数据没有伤害。而前台可以得到有用的自己格式化过的信息。 try { } catch(Exception ex) { Response.Write(ex.Message.Trim()); //错误信息 } 在存储过程里要建立异常机制.遇到错误要rollback你的数据..过程中可以通过返回值/输出参数来通知你的程序过程中有错误.! 那这样看来,在后台里是应该catch不到存储过程中的异常的咯?因为如果能catch到,就不需要通过返回值来通知了,是这个意思不?那为什么有很多人都说可以catch到呢?比如2楼的高手就是这个意思。 自己测了1天。我终于确认了,理论上是catch不到的靠~ ASP。NET在进行配置数据源时找不到业务对象? 新手请教一个gridview的问题 XenoCode 混淆后, 所有的public属性怎么都变成了get_XXX,set_XXX? Repeater传递ID(读取多张图片,div绝对定位___续) ASP.NET的文件下载控制! 问个简单问题 怎样使程序安装后自动运行? csdn会员登陆后页面左边的目录是怎么做的? 现有2张28号去广州,97次列车卧铺票,买重转售!!! 高手帮忙呀 子父页面之间的传值 急,问题处在哪?
这个方法不行吗
catch是让你不收到系统错误,页面crash,catch了就可以仿佛sp运行没有错一般,然后把output输出到页面上。
一般可以结合Transaction来做,如果catch到错误,就rollback,那么对数据没有伤害。而前台可以得到有用的自己格式化过的信息。
{ }
catch(Exception ex)
{
Response.Write(ex.Message.Trim()); //错误信息
}
那这样看来,在后台里是应该catch不到存储过程中的异常的咯?因为如果能catch到,就不需要通过返回值来通知了,是这个意思不?那为什么有很多人都说可以catch到呢?比如2楼的高手就是这个意思。