从库调用时如何抛出异常

本文关键字:抛出异常 调用 | 更新日期: 2023-09-27 17:59:37

我正在为Fluent NHibernate中的自动映射定义一个约定。在这个惯例中,我抛出了一个例外:

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>为true时,VisualStudio会突出显示<doSomeStuff>,并警告我"用户代码未处理MappingException"。

为什么直到<catchError>才抛出异常?

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

从库调用时如何抛出异常

出现这种行为的原因很可能是您选中了以下选项:调试->异常->"公共语言运行时异常"的"抛出"列。

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