C# 由于错误跳过了异常捕获子句?

C# 由于错误跳过了异常捕获子句?,c#,oracle,try-catch,C#,Oracle,Try Catch,有些可疑,我知道我一定错过了一些东西。 我正在尝试连接到Oracle实例,由于防火墙的原因,我无法从我的开发机器进行调试。现在我正在写事件日志。 我的ASP.net页面显示未设置为对象实例的对象引用,我正在尝试查找错误 代码中的注释指向我的有趣问题 下面是一个代码示例: try { OracleConnection oc = new OracleConnection(MyConnectionString); //Event log successfully created

有些可疑,我知道我一定错过了一些东西。 我正在尝试连接到Oracle实例,由于防火墙的原因,我无法从我的开发机器进行调试。现在我正在写事件日志。 我的ASP.net页面显示未设置为对象实例的对象引用,我正在尝试查找错误

代码中的注释指向我的有趣问题

下面是一个代码示例:

try
{
    OracleConnection oc = new OracleConnection(MyConnectionString);
    //Event log successfully created

    oc.Open();
    //Event log NOT created, thus error occurred in previous statement (I would assume)
}
catch (Exception ex)
{
  //Event log NOT created (?? - okay maybe there was no error)
}
finally
{
  //Event log successfully created
}
因此,似乎没有调用catch子句,因此我假设没有错误。但是,我在页面上收到了一个错误。 另一种逻辑解释是,错误发生在finally子句的末尾或catch子句的开头,但写入事件日志的代码与开头相同


那么,还能是什么呢?或者,我怎样才能测试它以找到错误呢?

问题说明是,catch子句中的日志记录产生了错误,因为ex.Message为null。

您的日志例程有问题,尝试将同一消息记录两次,并尝试说它没有问题//成功创建了事件日志,可能OracleConnection引发了非CLSCompliant异常。如果抛出非CLSCompliant异常,则catch异常ex没有任何意义。尝试使用空的catch子句捕获异常。要取消注释:我在您建议的位置复制了一条消息,它在日志中创建了两次消息。因此,我假设日志记录是正确的。并非没有显示任何错误,但仍在将相同的日志写入事件查看器。因此oc.Open没有成功运行,finally子句没有执行。好的,catch子句现在确实写入日志,我认为我的错误在于ex.Message是空的。它应该将ex.消息写入日志,但ex.消息为空。这可能是一个新的帖子?ex.消息是否可能为空?