回答

收藏

sqlConnection / Command using语句+ try / catch块

技术问答 技术问答 371 人阅读 | 0 人回复 | 2023-09-14

在内部使用try / catch或在内部使用try / catch的正确方法是什么?" \. a5 m6 H! K1 _* w! ~$ ~
using (SqlConnection connection = CreateSqlConnection(connString))( W& J+ P  c7 c7 O7 g( S3 ^' @- O9 x
{
( ]$ J. w3 J& A- Y5 [2 k               using (SqlCommand command = CreateSqlCommand()" R& H+ W6 r7 Y3 f8 {* D9 i$ f
               {
$ m* s' z5 q( ~: R! K                   try{//open connection + execute command + do something else}) D* @: X: v4 o# S7 E
                   catch{//do something}
0 a( O# B: K( P% C. y               }
% A  b! ~1 N% o; B! B) c6 m}/ m  w+ a& q: D+ x- u9 A1 @
# N& y: R  D% y7 u# Y, S
try
7 f, I" }; e: _0 L  @2 h{  \& x) X, v2 o+ g2 r* X
    using (SqlConnection connection = CreateSqlConnection(connString))
9 `4 L- l/ S" J& M" L    {
% x4 O7 `/ S7 e5 ~               using (SqlCommand command = CreateSqlCommand()
( {6 z$ G5 Q* b) u) {$ z3 m               {
7 j: W0 v& K! @                   //open connection + execute command + do something else
% y* y) q5 I& E( J( x, ?9 J* u               }
; a6 x& U5 O9 O    }
; {* r2 S8 Z* @- t}
5 |1 \, D3 J1 E2 K" v6 I% D! acatch% Z0 ^$ s% T3 f; {( x* c7 K
{
# _1 l' O$ q. ?5 K) J //do something5 l/ j, C) W: d
}
  ?. ^; T" ?9 |                9 l$ A4 s* P. q
解决方案:
2 v, O/ ]8 p% Y$ V/ V0 ]                6 j( _5 g+ p6 m( b! k
+ y, l- P( a& y0 J0 ?5 _
) V" q' @1 P" _+ V' _) i* K$ K
                在我看来,我的观点是:, k6 H  k( u. C3 X5 N
try
3 k( P/ `; z1 e) H* Q{
6 g# G; i4 _# q! k5 }6 I    using (SqlConnection connection = CreateSqlConnection(connString))
, U+ i! Q; O9 y6 P8 f7 n) z    {
' u( |+ ~' }/ k; ~) k& f: z7 R4 v               using (SqlCommand command = CreateSqlCommand()" ^0 I9 C+ R& Q3 g+ D  m0 F
               {
, A9 r4 g7 j0 v! j- {7 K/ d9 P                   //open connection + execute command + do something else
* d0 t3 Z4 M6 x: s% V% B, N               }* ~. j5 u, i3 s' m- N' v! e- C# S. j
    }8 n( N, y3 O+ H" I& s5 W0 D
}
7 C( G1 ^8 {# L' j( Vcatch
( Q6 P% |" ]8 N; u- E7 ]{, l$ u* k! W$ j. l, S
//do something3 }, o/ z5 z# u6 c
}
# A+ V8 h  r( B8 K以上是正确的方法。3 f, S6 u1 E; H9 o( d. u
因为,使用这种方法,如果与数据库的连接存在异常,则将其捕获在catch块内。但是使用第一种方法,则不会。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则