Javaに相当するC#とは Throwable
?
Javaでは、例外クラス階層のルートが呼び出されます Throwable
, ない Exception
。ザ Throwable
基本クラスには2つの派生クラスがあります。
Exception
:合理的なアプリケーションがキャッチしたい条件の場合。
Error
:合理的なプログラムがキャッチしようとしてはならない重大な問題の場合。
だから Throwable
基本クラスには、合理的なプログラムがキャッチしようとしてはならない問題が含まれています。
回答:
回答№1は14それは 例外クラス。 .NETの例外を除いて、個別の「スロー可能な」概念はありません。
回答№2の場合は1
.Netは任意のクラスの例外を許可しますが、C#はスローとキャッチを例外に制限します。タイプも変数も指定しないcatch句を使用して、例外以外の例外をキャッチします。
関連する仕様スニペット:
catch句でクラスタイプを指定すると、typeはSystem.Exception、System.Exceptionから派生した型、またはSystem.Exception(またはそのサブクラス)を有効な基本クラスとして持つ型パラメーター型である必要があります。
catch句でクラスタイプと識別子、指定された名前とタイプの例外変数が宣言されます。例外変数は、catchブロックに及ぶスコープを持つローカル変数に対応します。 catchブロックの実行中、例外変数は現在処理されている例外を表します。明確な割り当てチェックの目的で、例外変数はスコープ全体で確実に割り当てられていると見なされます。
catch節に例外変数名が含まれていない限り、catchブロックの例外オブジェクトにアクセスすることはできません。
どちらも指定しないcatch句例外タイプも例外変数名も一般的なcatch句と呼ばれます。 tryステートメントには、一般的なcatch句を1つだけ含めることができ、1つ存在する場合は、最後のcatch句にする必要があります。
一部のプログラミング言語は例外をサポートする場合がありますSystem.Exceptionから派生したオブジェクトとしては表現できませんが、そのような例外はC#コードでは生成できません。このような例外をキャッチするには、一般的なcatch句を使用できます。したがって、一般的なcatch句は、System.Exception型を指定するものとは意味的に異なり、前者は他の言語からの例外もキャッチする可能性があります。
.Net 4.0では、JavaのErrorクラスに似た概念が導入されています。破損した状態の例外は例外を拡張しますが、 HandleProcessCorruptedStateExceptionsAttribute CSEをキャッチします。