Nếu câu lệnh bắt của bạn cần truy cập vào biến được khai báo trong câu lệnh sử dụng, thì bên trong là tùy chọn duy nhất của bạn.
Nếu câu lệnh bắt của bạn cần đối tượng được tham chiếu trong quá trình sử dụng trước khi nó được xử lý, thì bên trong là tùy chọn duy nhất của bạn.
Nếu câu lệnh bắt của bạn thực hiện một hành động có thời lượng không xác định, như hiển thị thông báo cho người dùng và bạn muốn loại bỏ tài nguyên của mình trước khi điều đó xảy ra, thì bên ngoài là lựa chọn tốt nhất của bạn.
Bất cứ khi nào tôi có một scenerio tương tự như thế này, khối thử bắt thường ở một phương thức khác để tăng thêm ngăn xếp cuộc gọi từ việc sử dụng. Nó không phải là điển hình cho một phương pháp để biết cách xử lý các trường hợp ngoại lệ xảy ra trong nó như thế này.
Vì vậy, giới thiệu chung của tôi là bên ngoài cách thức bên ngoài.
private void saveButton_Click(object sender, EventArgs args)
{
try
{
SaveFile(myFile); // The using statement will appear somewhere in here.
}
catch (IOException ex)
{
MessageBox.Show(ex.Message);
}
}