私が得たもの:SecureBasePage
を継承グローバルのtry-catch(この場合はVB)
SecureBasePage.vb
(ログインする必要がページによって継承される)Default.aspx
場合はどうあるべきか:クライアントがDefault.aspx
を要求したが、彼がログインしていないので、ログインするためにリダイレクトされます
0123。これは例外LoginException
になり、このコンストラクタ
Public Sub()
If userIsAuthenticated Then
Else
Throw New LoginException()
End If
End Sub
を持っています。今私はそれがクライアントをlogin.aspx
にキックする何らかのグローバル例外ハンドラによってキャッチされるようにしたい。
私はApplication_Error()
がGlobal.asax
にありますが、これは例外ハンドラではなく、例外ハンドラではないと考えています。例外ハンドラは例外ではありません。したがって、この関数は、開発者が未処理の例外に関する電子メールを送信できるようにする可能性が高くなります。私は 'グローバル例外ハンドラ'の代わりに 'グローバル未処理例外ハンドラ'と呼んでいます。
コンストラクタの例外をスローするのを捕まえるために試してみることができるものはありますか?
はい、私は世界的にあまりにも自分の例外を作りたいので、私は世界的にそれをしたい理由は、次のとおりです。
この記事は、トピックにいくつかの有用なアドバイスを提供しています。そうすることで、そのページには束縛されずグローバルなものになります – Highmastdon
このロジックを必要とするすべてのページが 'SecureBasePage'から継承されている場合、継承によって既にグローバルになっています。また、独自の例外を生成するのは良い方法ではありません。カスタムの例外は、設計の欠陥または制限のために予約する必要があります。 –
「SecureBasePage」でそれを行うほうが良いかもしれませんが、カスタム例外の「ベストプラクティス」の使用法とそれをなぜこのように使用しないのかを説明する記事や何かを教えてもらえますか?これは私の上司に。彼はちょっと、例外を例外として使うことを主張している。 – Highmastdon