- - PR -
C#のTry〜Catchについて
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-04-02 11:56
こんにちは。
ほんとに初歩的なことですみません。 VB.NETからC#に乗り換えたところです。 Try 〜 catchなのですが、 OracleConnection objDb = oradb.getConnection(); OracleTransaction oraTra; try { objDb.Open(); oraTra = objDb.BeginTransaction(); 〜〜 } catch (Exception ex) { if (oraTra != null) { oraTra.Rollback(); } } と書くと、catch句の中で、 「未割り当てのローカル変数」としてビルドエラーになってしまいます。 VB.NETではこのコードで実行できたのですが、 C#の場合、どのようにすればよいのでしょうか。 初歩的すぎる質問ですみません。 よろしくお願いします。 | ||||||||
|
投稿日時: 2008-04-02 12:08
OracleTransaction oraTra = null;
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2008-04-02 12:10
こんにちは。
oraTraの変数は用意されていますが値の代入は行われてませんよね? ところで、
VS2005で確認しましたがVBでも同じエラーが起きます。 以前のバージョンではエラーは発生しないのでしょうか? | ||||||||
|
投稿日時: 2008-04-02 12:21
デフォルトですと C# ではエラーになりますが、VB は 「警告」 になるのでビルド自体はとおります。
2003 では VB に 「未割り当て検出機能」 がありませんでした。(C# にはあります) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2008-04-02 12:47
おっとそうみたいですね。ビルドせずに、コード内に表示される波線だけで判断してました。 申し訳ないです。
ありがとうございます。2005以前は触ったことないので勉強になります。 | ||||||||
|
投稿日時: 2008-04-02 12:49
ありがとうございます。
ビルド自体はできてしまいます。 2003の時は何もでなくて、 これでいいものだと、ずっと思ってました。 型変換など、VBだととりあえずはやってくれてしまうので、 今苦労しています。 (本当は厳密な方が良いのだとは思いますが) ありがとうございました。 |
1