0

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>が true の場合、VisualStudio<doSomeStuff>によって強調表示され、「MappingException がユーザー コードによって処理されませんでした」という警告が表示されます。

まで例外がスローされないのはなぜ<catchError>ですか?

Fluent NHibernate ライブラリは、NuGet パッケージ マネージャーによって追加されます。これが例外が転送されない理由である場合、MappingException を に送信するにはどうすればよい<catchError>ですか?

4

1 に答える 1

3

この動作の理由として最も可能性が高いのは、次のオプションをチェックしたことです: [デバッグ] -> [例外] -> [共通言語ランタイム例外] の列 [スロー]。

F5 キーを押すか、デバッグを続行すると、コードは最終的に<catchError>.

于 2013-02-15T11:56:29.100 に答える