2016-04-20 8 views
1

私はtryブロックでデータベース接続を開きます。 tryブロックに入ってデバッグを停止すると、finallyブロックが実行されますか?言い換えれば、接続は開いたままですか?tryブロック内でデバッグを停止するとfinallyブロックが実行されますか?

+0

コードが実行された場合でも、finallyブロックをデバッグすることができます。これは、アプリケーションが既に閉じられているためではありません。 – HimBromBeere

+0

1つのオプションデータベースサーバをチェックインして、アクティブな接続数を確認します。この方法でテストすることができます。 SQLサーバーを使用している場合は、このリンクを参照してください。http://stackoverflow.com/questions/216007/how-to-determine-total-number-of-open-active-connections-in-ms-sql-server-2005 – codetoshare

+0

windowsまたはウェブ? – Liam

答えて

3

「デバッグを停止する」とは、アプリケーションを停止することではありません(たとえば、現在のデバッグセッションを停止してVisual Studio内の停​​止ボタンを押すなど)。これは、F5ボタンを押して起動するコンソールアプリケーションの典型的なケースです。

「停止」とは、VSの外部で起動している現在実行中のアプリケーション(「Ctrl + Alt + P」で接続したアプリケーションなど)から「切り離し」を意味する場合、プログラムは終了まで実行され、 。また、IIS内で動作しているWebアプリケーション(IIS Expressではなく)にも当てはまります。

1

いいえ、デバッガからアプリを終了すると、ブロックfinallyは実行されません。プロセス全体が終了します。確かに、これは未記載の参照につながる可能性があります。 (ちょうど取り外すと、それは稼動し続けます)

接続は開いていません。サーバーはすぐに切断されます。

+1

"デバッグの停止"は必ずしもプロセスが終了したことを意味するものではありません。単純に接続ビジュアルスタジオがプロセスが停止している可能性があります。 – Liam

+0

@Liamは今より良いですか? –

+0

私はここでウェブを考えていると思います。それはWebアプリケーションの場合は、Visual Studioで停止を押すことは、プロセスを終了しないで(私は私が正しいと思うので、私は任意のWindows開発を行っているしばらくしている...)それはありません。 – Liam

1

これはアプリケーションによって異なります。 Webアプリケーションの場合は、生成された.dllファイルからアクセスできるため、残りのコードが実行されます。 Windowsアプリケーションの場合、finallyブロックは実行されません

+1

ワーカープロセスが終了しない限り... – Liam

関連する問題