从库中调用时如何抛出异常?

时间:2013-02-15 11:52:05

标签: c# exception-handling

我正在为Fluent NHibernate中的AutoMapping定义一个约定。在这个约定中,我抛出一个例外:

public void Apply(IManyToManyCollectionInstance instance){
  ...
  if(<error>)
    throw new MappingException("Invalid Mapping");

  <doSomeStuff>
}

在另一个类中,我初始化配置,导致上面的代码被执行:

public void init(){
  try{
    SessionFactory = configuration.BuildSessionFactory(); // Apply(...) will be called here
  }
  catch (MappingException ex)
  {
    <catchError>
  }

<error>为真时,Visual Studio会突出显示<doSomeStuff>,并警告我“用户代码未对”MappingException进行处理“。

为什么在<catchError>之前不会抛出异常?

NuGet包管理器添加了Fluent NHibernate库。如果这是未转发异常的原因,我如何将MappingException发送到<catchError>

1 个答案:

答案 0 :(得分:3)

此行为的原因很可能是您已检查以下选项: 调试 - &gt;例外 - &gt; “Common Language Runtime Exceptions”的“Thrown”列。

如果按F5或继续调试,代码最终会到达<catchError>