C#で何回か処理できない例外をスローしたいと思います。プロセスが停止するエスカレートされた例外。これは可能ですか?プロセスを停止する例外をスローする
答えて
どのように単純に次のようにプロセスを終了について:
例外はありませんProcess.GetCurrentProcess().Close();
例外を処理しない場合は、処理しないでください。
あなたが好きな何かができる:
class BadassException : Exception
{
public BadassException(string message)
{
Environment.FailFast(message);
}
}
...
throw new BadassException("Erk!!!");
+1スロー構文の乱用だけです。明らかにbadass例外です。 –
これはコーディングの恐怖だと思います。例外には、ロジックが埋め込まれてはなりません。例外がスローされ、例外のタイプに応じてどのようなロジックを実行するかを決定するのはcatchブロックまでです。あなたのBadAss例外をスローしますが、catchブロックがEnvironment.FailFastを実行させます。 –
@ジョン・レイナー:私はあなたに同意しますが、OPはそれを求めませんでした。私はちょうど尋ねられたものを与えました:) – leppie
は、それが原爆です。
しかし、このシナリオを処理するためのより良い方法があります。あなたのプロセスを終了させる場合は、Application.Exitのようなオプションを見てください。
すべての例外はException
基本クラスから継承しなければならないため、実際には可能ではありません。catch(Exception)
を実行できます。
しかし、他の人が指摘しているように、あなたはすばやく失敗する可能性があります。またそうのように、特にキャッチすることができない例外をスローすることができます
public class MyLibraryClass
{
private class MyException : Exception { ... }
public void MyMethod() { throw new MyException(); }
}
その後、発信者のみcatch(Exception exc)
catch(MyException exc)
を行うことはできません。しかし、それは例外が捕らえられることを意味します。
CLRは 'Exception'ではないオブジェクトを投げることをサポートしています。小さな手でILを巻き上げるだけで、簡単に何かを投げることができます。 IIRC、それらは 'catch {}'で捕捉されるだけです。 – leppie
処理されない例外は、アプリケーションを停止します。通常、アプリケーションには、未処理の例外をキャッチし、データのメンテナンスを行い、アプリケーションを正常にシャットダウンするアプリケーションまたはトップレベル例外ハンドラがあります。
あなたの場合、最良のアプローチは、StopApplicationExceptionのような例外クラスから派生した新しい例外を作成することだと思います。
アプリケーションを停止する必要があるときはいつでも、このタイプの例外をスローします。キャッチブロックのコールスタックをさらに上に移動します。
catch (StopApplicationException)
{
//Stop your application
}
catch (ArgumentNullException)
{
//Null Exception Logic goes here...
}
catch ...And so forth
- 1. Wreq:例外をスローする404sを停止します
- 2. 実行を停止せずに例外をスローしますか?
- 3. Visual Studioは例外アシスタントとブレークせず、プロセスを停止するだけです
- 4. 例外ASP.NETをスローするWebキャッシングを防止する方法?
- 5. =例外をスローする例外
- 6. いくつかのプロセスで例外をスローする
- 7. openFileOutput例外をスローする
- 8. コンテンツプロバイダ例外をスローする
- 9. カスタム例外をスローする
- 10. 外部プロセスの開始時にサービスを停止する
- 11. 例外が発生するたびにスレッドを停止する
- 12. Apache Tomcatからアプリケーションをアンデプロイ/停止する前にプロセス/スレッドを停止する
- 13. 停止NSFileManagerプロセス
- 14. 例外が発生したときにスレッドを停止する
- 15. テストコードで例外時にXcodeを停止する方法は?
- 16. Rails:after_createの例外で保存を停止する
- 17. 例外の解析onpreexecute()が発生すると停止する
- 18. 例外をチェックした後にプログラムが例外をスローする
- 19. .Netコードの実行が停止し、例外がスローされない
- 20. 非同期プロセスが永久に停止するのを停止しますか?
- 21. プロセスとその子プロセスのファイルキャッシュを停止する
- 22. boost :: asio :: io_serviceが例外をスローする
- 23. Observable.FromEventPattern on Thumb.DragDeltaが例外をスローする
- 24. 手動で例外をスローする
- 25. 例外をスローするTestRunTypeのシリアライズ
- 26. jqgrid-saveRow例外をスローするURL
- 27. Spring Webサービス例外をスローする
- 28. スカラコードでスクロール例外をスローする
- 29. ワークシートget_Rangeが例外をスローする
- 30. Android - SimpleCursorAdapter例外をスローする
単純に例外をスローしてプロセスを強制終了しないのはなぜですか? –