try...catch...新认识
来源:互联网 发布:多肉植物淘宝店推荐 编辑:程序博客网 时间:2024/06/08 05:49
说是新认识,就是说之前不知道它是这么用的。
之前认识try...catch...,就是捕获异常,但这个捕获异常只是:当try的语句错误后,直接到catch的语句,这样界面就不会报错了。所以,仅把它当做了遮挡错误的工具。
而今天调错的过程中,却是利用try...catch...的捕获异常的功能,找到了错误的所在,并将它解决了。
当时错误出在:this.DbSession.SaveChanges();
错误信息是:对一个或多个实体的验证失败 有关详细信息,请参见"EntityValidationErrors"属性。
这是底层封装好的方法,已经没有人再维护、更改了,并且已经用了很久,所以我没有深究它的错误,我知道错误肯定在别处,但却毫无思绪。有猜测是传参不正确导致的错误,但也不能具体到是哪个参数传错了。
经过查询资料,得知try...catch可以找到问题的根源,所以进行了尝试:
在报错的代码处加上try...catch:
try { this.CurrentDal.Add(enCheckScore);//自己的代码 this.DbSession.SaveChanges();//自己的代码(源报错的代码) } catch (DbEntityValidationException dbEx) { throw; }若DbEntityValidationException不能自动提示写出,则添加引用:
using System.Data.Entity.Validation;
然后运行,就会得到这样的信息:(以评教代码为例:)
报错的误提示中的EntityValidationErrors也在这个图中。而展开的信息中,就明确告诉了我们问题在哪:有个字段是必须的,也就是我没给它传值,导致了错误。
知道错误所在,改就是轻而易举的事了......
从这个过程中,感触最深的就是try...catch的用法,原来还可以这么用......
1 0
- try...catch...新认识
- try catch 的新认识
- 第一回认识try catch
- Jdk1.8新特性之try()catch{}
- try catch
- try{} catch{}
- try catch
- try...catch
- try{} catch(...){}
- try catch
- try-catch
- try catch
- try-catch
- try catch
- try catch
- try catch
- try catch
- try catch
- c++不常用功能之——类模板
- css 截取图片某个位子和绝对定位
- select / poll / epoll 区别与应用场景
- java StringBuilder类的常用方法
- HDOJ(HDU) 2136 Largest prime factor(素数筛选)
- try...catch...新认识
- 使用CSS3滤镜美化效果
- jdk8+tomcat8+eclipse配置JavaEE开发环境
- Android消息传递机制浅析
- 用PyInstaller把Python代码打包成单个独立的exe可执行文件
- ECLIPSE项目中断svn连接解决方法
- Leetcode 112. Path Sum
- jQuery(1)--入口模块jQuery()
- 网络编程--Volley之定制自己的Request