cuốn sách gpt4 ai đã làm

c# - Các đối tượng trong khối thử bắt

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 17:56:29 27 4
mua khóa gpt4 Nike

Lấy ví dụ mã sau:

trạng thái chuỗi = "ok";
SqlCommand cmd=null;
SqlTransaction trans=null;
thử
{
cmd = defs.prepquery("");
trans = cmd.Connection.BeginTransaction();
cmd.Transaction = trans;

}
catch (Exception ex)
{
status = defs.logerror("đang khởi tạo giao dịch sql:" + ex.ToString());
trạng thái trả lại;
}

thử
{
nếu (oper == "gửi")
{
cmd.CommandText = "cập nhật DCM_Mapping_Sessions đặt StatusID=2 " +
"nơi MappingSessionID=" + mpsid + "";
cmd.ExecuteNonQuery();
}
khác nếu (oper == "xóa")
{
//......v.v..
}
bắt (Ngoại lệ ex2)
{
// rollback, đóng kết nối
// xử lý cái cũ
}

// nếu mọi thứ đều ổn, hãy thực hiện giao dịch và đóng kết nối
}

Vì vậy, câu hỏi của tôi là: điều gì xảy ra với đối tượng trong khối thử khi xảy ra ngoại lệ?
Nếu một ngoại lệ xảy ra, C# có cho phép tôi lười biếng và hủy đối tượng (hủy giao dịch đang chờ xử lý, nghĩa là khôi phục) và đóng kết nối không?

Tôi đến từ nền tảng C\C++, vì vậy để đảm bảo an toàn, tôi đang thực hiện những điều trên và không kết thúc bằng một giao dịch mở nếu có ngoại lệ xảy ra bên dưới.

câu trả lời hay nhất

Bạn nên loại bỏ/đóng các kết nối và giao dịch.

Cách tốt nhất là gói nội dung sáng tạo vào using statement中。

Cung cấp một cú pháp thuận tiện để đảm bảo việc sử dụng đúng các đối tượng IDisposable.



Thiết yếu, usingcâu lệnh kết thúc việc tạo đối tượng trong thử{}cuối cùng{} khối để đảm bảo xử lý chính xác.
    sử dụng(var cmd = defs.prepquery(""))
    sử dụng(var trans = cmd.Connection.BeginTransaction())
{

}

Về các đối tượng trong C# - thử khối bắt, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/9671456/

27 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress