Hãy xem xét các chương trình sau "an toàn":Tại sao ngoại lệ .net không bị phát hiện?
internal class Safe
{
public static void SafeMethodWillNeverThrow()
{
try
{
var something = ThrowsNewException();
Func<int, string> x = p => something.ToString();
}
catch (Exception)
{
}
}
private static object ThrowsNewException()
{
throw new Exception();
}
public static void Main()
{
SafeMethodWillNeverThrow();
}
}
Nó sẽ không bao giờ hoàn chỉnh với một ngoại lệ. Nhưng tại sao nó không thành công khi tôi chạy nó? Tại sao SafeMethodWillNeverThrow() ném ngoại lệ?
Trước khi thử nghiệm mã này, vui lòng đọc câu trả lời bên dưới.
Tôi chạy mã ở trên và không thể tạo lại vấn đề - nó hoạt động như mong đợi, ngoại lệ bị bắt – sergtk
Vui lòng kiểm tra xem bạn đã bật Kiểm tra hợp đồng thời gian chạy mã hợp đồng cho bạn và bạn xây dựng cấu hình phát hành. Tôi bạn vẫn không thể tái tạo nó, xin vui lòng cho tôi biết phiên bản của các hợp đồng mã bạn đang sử dụng. Cảm ơn –
có thể tái tạo với 1.4.50327.0. Lạ: -O – sergtk