- えんぞ@?
- ぬし
- 会議室デビュー日: 2004/07/06
- 投稿数: 271
- お住まい・勤務地: はまっこ
|
投稿日時: 2006-03-30 16:18
引用: |
|
じゃんぬねっとさんの書き込み (2006-03-30 15:49) より:
引用: |
|
ひろれいさんの書き込み (2006-03-30 12:00) より:
じゃんぬさん、分かりやすいご説明ありがとうございました。
既に、じゃんぬさんはヒントをくれていましたね
「共有メンバ」と「インスタンスメンバ」というヒントを。
|
すみません、説明が下手なもので...
どこかに誘導した方が良かったかもしれません。
|
これ見てなんとなく納得。。。
http://www.atmarkit.co.jp/fdotnet/basics/oop03/oop03_04.html
|
- ひろれい
- ぬし
- 会議室デビュー日: 2006/03/02
- 投稿数: 486
- お住まい・勤務地: 万博開催地
|
投稿日時: 2006-03-30 16:27
私も納得です(^o^)
|
- ぼのぼの
- ぬし
- 会議室デビュー日: 2004/09/16
- 投稿数: 544
|
投稿日時: 2006-03-30 18:04
こんにちは。
なんか途中からスレタイと全然違う話になってますね(^^;
一気に話を戻してしまいますが…
引用: |
|
ひろれいさんの書き込み (2006-03-29 14:21) より:
C系では例外をキャッチするのは当たり前なのでしょうね。
旧VBでは、On Error でしたから、Throw という知識がありませんでしたm(_ _)m
ありがとうございました。
|
厳密に言うと、C言語に例外機構はありません。
Try〜Catchが使えるのはC++からです。
しかも、Javaや.NETと違ってfinallyがありません。
javaはあんまり詳しくないんですけど、
私が.NETでよく使うのは「Catch無し」のTry〜Finallyです。
例えば、DB接続の場合、こんな感じ。
コード: |
|
Dim conn As Oracle.DataAccess.Client.OracleConnection
Try
conn = New Oracle.DataAccess.Client.OracleConnection("接続文字列")
conn.Open()
'以下略
Finally
If Not conn Is Nothing Then conn.Close()
End Try
|
|
- ひろれい
- ぬし
- 会議室デビュー日: 2006/03/02
- 投稿数: 486
- お住まい・勤務地: 万博開催地
|
投稿日時: 2006-03-30 20:39
ぼのぼのさん、こんばんは。
引用: |
|
ぼのぼのさんの書き込み (2006-03-30 18:04) より:
私が.NETでよく使うのは「Catch無し」のTry〜Finallyです。
例えば、DB接続の場合、こんな感じ。
コード: |
|
Dim conn As Oracle.DataAccess.Client.OracleConnection
Try
conn = New Oracle.DataAccess.Client.OracleConnection("接続文字列")
conn.Open()
'以下略
Finally
If Not conn Is Nothing Then conn.Close()
End Try
|
|
はい。私も本日、参考となるページを教えていただきましたので、それを元に全ソース見直しました。
基本的には、ぼのぼのさんと同様、Try 〜 Finally 〜 にしました。
で、Application_Error イベントでエラー画面を表示するようにしました。
ただ、業務的にエラーをキャッチしたい場合もありましたので、その場合のみ Catch句を入れております。
無駄な Try が無くなり、階層もちょっと浅くなり、スッキリしました(^o^)
|
- Kazuki
- ぬし
- 会議室デビュー日: 2004/10/13
- 投稿数: 298
|
投稿日時: 2006-03-30 21:31
引用: |
|
ぼのぼのさんの書き込み (2006-03-30 18:04) より:
厳密に言うと、C言語に例外機構はありません。
Try〜Catchが使えるのはC++からです。
しかも、Javaや.NETと違ってfinallyがありません。
|
これは正確にはfinallyが無いというよりは必要がないですよね。
そこらへんはJavaやC#, VB.NETよりも羨ましい。
プリコンパイルやC++のテンプレートも欲しい機能ですね。
[ メッセージ編集済み 編集者: Kazuki 編集日時 2006-03-30 21:32 ]
|
- 渋木宏明(ひどり)
- ぬし
- 会議室デビュー日: 2004/01/14
- 投稿数: 1155
- お住まい・勤務地: 東京
|
投稿日時: 2006-03-30 22:21
引用: |
|
これは正確にはfinallyが無いというよりは必要がないですよね。
|
Windows API や C ランタイム関数なんかを混在して使う場合、finally 句が欲しくなります。
|
- Jitta
- ぬし
- 会議室デビュー日: 2002/07/05
- 投稿数: 6267
- お住まい・勤務地: 兵庫県・海手
|
投稿日時: 2006-04-02 21:21
「再 throw すればいいやん」とか思って、
コード: |
|
try {
処理
} catch (Exception ex) {
ログ出力
throw;
}
|
とかやったら。。。デバッグ中に IDE がキャッチする例外の「発生元」が、この throw 文になりますから!
デバッグ時も、ピンポイント、ピンタイムでキャッチしましょう。キーパーも、ペナルティエリアの外ではハンドで反則ですから。
|
- 渋木宏明(ひどり)
- ぬし
- 会議室デビュー日: 2004/01/14
- 投稿数: 1155
- お住まい・勤務地: 東京
|
投稿日時: 2006-04-03 00:17
引用: |
|
とかやったら。。。デバッグ中に IDE がキャッチする例外の「発生元」が、この throw 文になりますから!
|
それを追いかけるための InnerException プロパティです。
|