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块内。但是使用第一种方法,则不会。 |
|
|
|
|
|