考虑使用内部加密函数的WPF应用程序:
using System;
using System.Security.Cryptography;
using System.Windows;
namespace CryptoExceptionHandling {
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
try {
MakeCryptoException();
} catch (CryptographicException x) {
MessageBox.Show(x.Message);
}
}
private void MakeCryptoException() {
using (var csp = new RSACryptoServiceProvider(1024, new CspParameters { ProviderType = 1 })) {
var data = new byte[128];
new Random().NextBytes(data);
csp.Decrypt(data, false);
};
}
}
}
我希望这个程序能够显示一个带有异常的消息框。当我的应用程序提供的某些数据无效时,该程序会模拟一个案例。
我不希望应用程序崩溃,我希望应用程序执行更有意义的操作,例如显示“拒绝访问”或“无效数据”屏幕。
如何捕捉异常?您可以通过创建一个空的WPF
应用程序并将下面的代码粘贴为MainWindow.cs
内容来轻松地重新创建此案例。
我删除了此问题的先前内容,因为它可以在评论中观察到 - 它缺少一个有效的例子。
答案 0 :(得分:0)
解决方案:
转到DEBUG菜单,选项子菜单,取消选中“当异常跨越AppDomain或托管/本地边界时中断”选项。
我之前调试了一些混合/不安全的代码,忘了在完成后取消选中它。