使用SQL CE在C#应用程序中捕获System.NullReferenceException

时间:2011-12-21 05:47:05

标签: c# sql-server try-catch nullreferenceexception

我有一个不断崩溃的应用程序,只说“应用程序已停止工作”。在细节中它说它是由于System.NullReferenceException。我无法在我的开发环境中复制此异常(这是x86,在我可以扩展线程的服务器上测试x64),原因不明,我似乎找不到捕获错误的方法。我试着抓住所有东西。我认为这是由于一些SQL CE查询返回空值,即使它们在try-catch块中并且if语句测试空值。

我真的不认为在x64机器上进行测试会导致任何问题。我将尝试在我的开发环境中复制该问题,但可能需要很长时间,因为我的应用程序使用大量线程并连接到互联网很多,而且连接速度很慢。

编辑:我设法在我的开发环境中重新编写。尝试使用调度程序写入文本框时发生错误。我正在拧ex.Message(其中ex是我的例外),但似乎ex为null并导致错误。如何在try-catch中为空?这似乎对我没有意义。

1 个答案:

答案 0 :(得分:0)

实际上,你不应该把try-catch放在一切。这正是让您无法找到错误的原因。 NullReferenceException和许多try-catch的组合实际上是一个警告,你应该停止吞咽所有错误。例外情况是例外 - 不要只是常规地捕获它们。如果您的软件容易出现大量异常,则代码中的错误需要正确修复。

  1. 在源代码管理系统中创建代码的一个分支(你正在使用一个,对吗?)
  2. 删除所有(!)try-catch块。
  3. 运行代码并进行调试。
  4. 然后你会有一些正确的错误信息来提问。