在使用ET框架时,如果在异步方法中使用'async void',确实无法捕获异常。这是由于'async void'方法的异常无法被上层代码捕获的特性所导致的。

一种解决方法是将'async void'方法改为'async Task'方法,并在调用该方法的地方使用try-catch语句来捕获异常。例如:

private async Task DoSomethingAsync()
{
    // 异步操作
}

public async void CallDoSomethingAsync()
{
    try
    {
        await DoSomethingAsync();
    }
    catch (Exception ex)
    {
        // 处理异常
    }
}

这样,异常就可以被try-catch语句捕获并进行处理。

另外,如果你使用的是Unity 2017.1之后的版本,也可以尝试使用Unity的新特性—AsyncTaskMethodBuilder来解决这个问题。具体的实现可以参考Unity官方文档中的示例代码。

Unity ET框架中async void方法异常捕获问题及解决方案

原文地址: https://www.cveoy.top/t/topic/o9P1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录