Tôi có đoạn mã sau:Catch ngoại lệ, thêm dữ liệu, và rethrow nó
try
{
OnInitialize();
}
catch (PageObjectLifecycleException exception)
{
exception.OldLifecycleState = CurrentLifecycleState;
exception.RequestedLifecycleState = LifecycleState.Initialized;
throw exception;
}
tôi bắt một ngoại lệ, thêm một số dữ liệu hơn với nó, và rethrow nó. Resharper cảnh báo tôi (chính xác) rằng một rethrow cũng có tiềm năng dự định và đề nghị thay đổi nó để:
throw;
Nhưng tôi tự hỏi: Điều này sẽ rethrow đúng sửa đổi ngoại lệ hoặc một bản gốc chưa sửa đổi?
Chỉnh sửa: Để trả lời nhận xét "Thử và xem": Tôi mới sử dụng C#, đến từ C++. Trong C++ bạn thường thấy hành vi không xác định trong các trường hợp góc như thế này và tôi quan tâm đến việc những gì tôi muốn thực sự là nó hoạt động như thế nào.
Hãy thử nó và xem những gì sẽ xảy ra? –
nó sẽ xem xét lại bất cứ điều gì tham chiếu là chỉ quá - trong trường hợp của bạn sửa đổi "ngoại lệ". –