0

您好我正在实施我的WP7应用程序内的本地数据库,并想知道如何处理在数据库上运行操作时可能出现的不同类型的SqlCeExceptions。例如,如果尝试删除由外键约束的项目并执行另一个错误让我们说一个随机未处理的异常,我想要显示某个错误消息。如何处理LINQ to SQL异常?

对我来说,这似乎是可能的异常可以在switch叙述可以通过catch块中,像这样:

switch(myException) 
{ 
    case ForeignKeyException: 
     //Handle it this way... 
     break; 
    case UnhandledException: 
     //Handle it another way... 
     break; 
} 

有谁知道如何实现这也许指向我的地方,在那里我可以学到如何单独处理这些异常?

回答

2

虽然我没有答案,但我总是通过从不让例外发生来解决这个问题。我总是在之前检查插入数据是否有效。我确保所有的唯一索引都受到尊重(用户名,...),并且所有外键问题都已得到处理。这是,恕我直言,唯一的理智的方式来做到这一点。我不希望产生异常并处理它们,因为我永远不能确定我不会捕捉太多的异常,从而隐藏真正的错误。

+1

+1我想你做一个很好的点。现在我回去了,实施一种形式的检查而不是依靠例外情况会更好。我继续实施你所说的并且很好地工作。 – loyalpenguin 2012-01-27 22:46:32

2
try 
{ 
    // something 
} 
catch(ForeignKeyException ex) 
{ 
    // handle foreignkeyexception 
} 
catch(UnhandledException ex) 
{ 
    // handle unhandledexception 
} 
+0

任何想法如何区分不同的错误?我查了一下SqlCeException,但找不到可以检查的异常列表。 ForeignKeyException是我写的解释我的问题的peusdo代码。 – loyalpenguin 2012-01-27 22:30:22

1

为什么不为每个您关心的异常类型设置不同的catch块?

try 
{ 
    ... 
} 
catch(a ae) 
{ 
    ... 
} 
catch(b ab) ......