2012-07-31 6 views
10

Khi gỡ lỗi bằng cách sử dụng Visual Studio 2012 RC với ngắt trên ngoại lệ bật, Visual Studio phá vỡ các ngoại lệ từ bên trong Khuôn khổ .NET. Làm thế nào để làm cho nó phá vỡ trên trường hợp ngoại lệ chỉ trong mã của tôi?Visual Studio 2012 RC vi phạm các ngoại lệ từ bên trong Khuôn khổ .NET. Làm thế nào để làm cho nó phá vỡ trên trường hợp ngoại lệ chỉ trong mã của tôi?

Khi gỡ lỗi dự án ASP.NET MVC 4, có rất nhiều trường hợp ngoại lệ khung được ném trên mỗi lần truy cập trang. Ngoại lệ sau xảy ra rất nhiều:

System.Globalization.CultureNotFoundException occurred 
    HResult=-2147024809 
    Message=Culture is not supported. 
Parameter name: name 
UserCache is an invalid culture identifier. 
    Source=mscorlib 
    ParamName=name 
    InvalidCultureName=UserCache 
    StackTrace: 
     at System.Globalization.CultureInfo..ctor(String name, Boolean useUserOverride) 
    InnerException: 

Ngoại lệ này đến từ bên trong mscorlib.dll mà tôi không muốn Visual Studio đột nhập.

Có vẻ như tôi thiếu cột trong cửa sổ ngoại lệ. Tôi chỉ thấy cột "Đã phát" và "Người dùng" đang thiếu. Đây có thể là vấn đề của tôi.

Trả lời

23

Tôi tin rằng tất cả các bạn cần làm là đi đến

Debug -> Options -> Debugging và kiểm tra Enable Just My Mã (Managed Only)

+0

Điều này đã sửa nó! Cảm ơn bạn. – KTrace

+0

@Malcolm: Cảm ơn bạn. Điều này giúp tôi tiết kiệm rất nhiều thời gian – SharpCoder

+1

Trong trường hợp của tôi (Dựa trên cài đặt môi trường), tùy chọn này có sẵn trong Tools> Options> Debugging> General> chọn Enable Just My Code (Managed Only) – SharpCoder

0

Chuyển đến Gỡ lỗi ->Ngoại lệ và bỏ mọi thứ. Điều này sẽ cho trình gỡ rối biết để chỉ phá vỡ các ngoại lệ không được xử lý. Các ngoại lệ không được xử lý là những ngoại lệ không bị 'bắt', không xảy ra trong một thử/nắm bắt thích hợp.

Nhưng hiểu rằng loại ngoại lệ nào xảy ra, nếu nó không được xử lý, trình gỡ lỗi sẽ bị hỏng hoặc ứng dụng sẽ thoát. Đó là cách nó phải làm việc. Nếu bạn mong đợi ngoại lệ xảy ra, hãy bọc mã thủ phạm trong khối try/catch thích hợp.

Trong trường hợp này đó sẽ là

try 
{ 
... 
} 
catch (CultureNotFoundException ex) 
{ 
    // Show your own message here, or otherwise handle the exception 
} 
+0

Tôi muốn nó phá vỡ các trường hợp ngoại lệ được xử lý trong mã của tôi không chỉ là những thứ chưa được xử lý. – KTrace

+0

Xin lỗi, đã hiểu nhầm câu hỏi của bạn. Trong trường hợp đó, hãy đánh dấu ** Ngoại lệ Ngoại ngữ Phổ biến **. –

+0

Nó đã được đánh dấu. Khi được chọn, nó sẽ phá vỡ tất cả các ngoại lệ trong .NET Framework. Unticked nó không phá vỡ bất cứ điều gì. – KTrace