时间:2015-06-17 09:01:49

标签: c# android exception exception-handling xamarin.android

主要问题完全不同,请跳到修改

我有一个未知类型的例外,它甚至没有被正确抛出。以下代码提供了上下文:

MMDataAccess.InitDemoDB();
MMDataAccess.InitInternalDB();
MMDataAccess.InitMaintDB();

try
{
    SQLiteToDBLib sqltdbl = new SQLiteToDBLib();
    sqltdbl.WriteToSQLite();
}
catch(Exception ex)
{
    string message = ex.Message;
}

这是我应用中第一个Activity的第一行。前3行属于我自己的内存数据库实现,行为很好。问题块中的下两行会出现问题。 sqltdbl变量的声明和初始化永远不会发生。 SQLiteToDBLib的构造函数如下所示:

public SQLiteToDBLib()
{
    msc = new MSConnection();
}

MSConnection类甚至没有构造函数(当然默认的除外)。

正如你所看到的,我试图抓住任何例外,但没有成功。我能弄清楚的是,由于调试器进入catch部分而忽略了与“ex”有关的所有事情,所以抛出异常。没有断点,一切似乎都很好。只是没有调用WriteToSQLite,它应该在外部存储器上创建一个.sqlite文件。

我该怎么做才能解决此错误?除了默认的Exception之外,还有什么可以捕获的吗?

修改

在使用注释代码进行一些测试之后发生了一些间歇性事件。我可以进入评论代码。不完全是注释代码,而是我更改之前的代码。 Visual Studio以某种方式向我展示了文件中已更改的内容,但正在编译旧代码。到目前为止,我尝试以各种组合重建,清理和构建项目,卸载并重新加载项目,重新启动Visual Studio并重新启动Windows。到目前为止没有任何改变。我现在将继续使用完全相同的代码创建一个新的.cs文件。我正在与VS 2013社区合作

1 个答案:

答案 0 :(得分:0)

将静态构造函数添加到SQLiteToDBLib类并在其中执行所有静态对象初始化:

static SQLiteToDBLib()
{
   // initialize static members here
}

如果这不能为您提供线索,请尝试在visual-studio中启用CLRE例外中断:

  1. DEBUG
  2. 例外
  3. 检查“公共语言运行时异常”选项(在“投掷”列下)
  4. 按OK
  5. 重新启动您的应用并重试