2009-06-12 9 views
11

これはおそらく問題ではないことがわかりますが、何が正しいかを知りたいと思います。C#:例外を発生またはスローしますか?

コードにthrow new SomeKindOfException()の一部のバージョンが含まれている場合。このコードは潜在的に例外を発生させる可能性があると言いますか?または例外をスローしますか?

キーワードがthrowあるので、私は種類のそれに傾いていますが、また、多く使用された例外を発生させる...

は、彼らは別の意味のいくつかの並べ替えを持っていますか?それらのうちの1つは、他のものとの違いを示唆していますか?それともちょうど同じことを意味する2つの単語ですか? を上げるC#の用語で

+0

Rubyでの関連する議論:http://stackoverflow.com/questions/51021 –

答えて

25

は、例外の文脈で使用されるを投げるイベントとの文脈で使用されます。

個人的には、throw/catchの組み合わせがraise/catchより綺麗だと思います。

+0

ああ、もちろん、私は完全に同意します。今や完全に意味をなさない!それをクリアしていただきありがとうございます:) – Svish

+3

C#は、 "null値のない型の演算子のnullableバージョンを提供する"を意味する "lift"を使用し、 "閉鎖のフィールドにローカル変数を変換する"クラス"。だからC#では、物を持ち上げたり、持ち上げたり、持ち上げたりすることができます。 –

3

私はC#で話すことができませんが、C++では "raise"が既に標準関数名として使用されていたため "throw"が選択されました。

1

私はを投げた方が良いと言いますが、2つの用語は同じ意味です。あなたが同じ単語を繰り返さないように、テキストの中で2度使用する必要がある場合に非常に便利です。しかしそれはテクニカルライティングのためには必要ではないスタイリスティックスです(しかしそれでも素晴らしいことです)。

+2

あなたは英語の文章では正しいですが、技術的な文章では同じ単語を一貫して使う方が良いです。そうでないと読者は多少の違いがあると思うかもしれません。 – stivlo

0

投げたり引き上げたりするのはうまくいくように思えます。私はそれを書いていないだろうが、私が話しているとき、私はたいてい「チャックの例外」と言う。

イベントの場合は、「イベントを発生させる」または「イベントを発生させる」のいずれかを使用します。

+0

「火災」はもちろん、一般的なイベントで使用されます。用語ガイドラインを考えるとき、チームは「火災」が不必要にうっすらと思えたので、「火」を避けて「上げる」ことを提案しました。私の個人的な意見は、これはちょっとばかげていることですが、「上げる」というのはうまいですし、どちらか一方でも標準化するかもしれません。 –

1

さまざまな言語の用語が「スロー」を好む。そして、私は、 'スロー'は、これがキーワードが使用され、コンパイラ/言語のドキュメントは常に例外がスローされることを指していると考えると、もっと意味をなさないことに同意します。

しかし、巨大な例外の腹には、実際にはRaisedが投げられません。 EXCEPTION_RECORDを見つめているデバッガで深いところが見つかった場合は、SEHという用語で話します。コンパイラ/言語例外の特定のクラス(eh, clr, vcpp)は、多くの味の例外の1つに過ぎません。私は、ページフォールトやスタックオーバーフローのような例外が発生した元の条件は、ユーザーコードが「通知」された状態であり、例外ではなくユーザーコードが自分自身に「投げ込まれた」状態であることに気づいたと思いますしたがって、この用語はその意味でより意味があります。

関連する問題