首页新闻找找看学习计划

C#中异常Exception 的详细情况

0
悬赏园豆:10 [待解决问题]

我写了一个方法 Insert(Person person,Cat cat,Dog dog)
{
try
{
db.Persons.Add(person);
db.Cats.Add(cat);
db.Dogs.Add(dog);
}
catch(exception ex)
{
报错提示未将对象引用到实例。
}
}

提问:如何知道是具体person,cat,dog为null还是其中某个字段为null还是
db.Dogs 之类为null?

Melody.Gkx的主页 Melody.Gkx | 初学一级 | 园豆:196
提问于:2019-08-29 15:47
< >
分享
所有回答(4)
0

你调试 到exception 有错误的详细信息,报错在那一行,这样就可以知道

一只小熊猫 | 园豆:350 (菜鸟二级) | 2019-08-29 16:07
0
try{
   db.Persons.Add(person);
}catch(ex){
   print('it's person');
}
try{
   db.Persons.Add(cat);
}catch(ex){
   print('it's cat');
}

你这样写就知道是哪个了。不过建议你先做非空判断

会长 | 园豆:5532 (大侠五级) | 2019-08-29 16:37
0

看id或者单号 是什么,然后VS调试,就知道哪个属性有问题了

jqw2009 | 园豆:1893 (小虾三级) | 2019-08-29 16:52
0

自己搞个容错机制啊,不要一切都交给try
Insert(Person person,Cat cat,Dog dog)
{
if (db==null){
// 没有可插入的对象
return;
}
if (db.Persons==null){
// 数据库字段Persons未实例化
return;
}
if (person==null){
// 插入的数据为空
return;
}
try
{
db.Persons.Add(person);
db.Cats.Add(cat);
db.Dogs.Add(dog);
}
catch(exception ex)
{
报错提示未将对象引用到实例。
}
}

文盲老顾 | 园豆:145 (初学一级) | 2019-08-29 17:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册