я использую postsharp Чтобы справиться с попыткой перехвата, в последнем посте есть проблема, я пересылаю его
открытый класс ExceptionAspectAttribute: OnExceptionAspect {public ExceptionAspectAttribute () {ApplyToStateMachine = true;}
public override void OnException(MethodExecutionArgs args)
{
var msg =
$"时间[{DateTime.Now:yyyy年MM月dd日 HH时mm分}]方法{args.Method.Name}发生异常: {args.Exception.Message}\n{args.Exception.StackTrace}";
Debug.WriteLine(msg);
args.ReturnValue = Task.FromResult(true);
args.FlowBehavior = FlowBehavior.Continue;
}
}
это мой код
public partial class MainWindow : Window
{приватная строка a;
[ExceptionAspect]
private async Task<object> Init()
{
a.GetTypeCode();//throw Exception
return null;
}
public MainWindow()
{
InitializeComponent();
this.Loaded += MainWindow_Loaded;
}
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
aaa();
Debug.WriteLine("do something!");
}
public async void aaa()
{
//This code executes and returns to MainWindow_Loaded,i want code keep going
var a= await Init();
//i want to Execute the following code
if (a == null)
{
Debug.WriteLine("the following code");
}
}
}
я хочу выполнить Init ()метод, а затем продолжайте выполнять Execute
if (a == null)
{
Debug.WriteLine("the following code");
}
, но он возвращается к MainWindow_Loaded (), как мне использовать postsharp Заранее спасибо