为了账号安全,请及时绑定邮箱和手机立即绑定

方法调用中没有异常 UIImage.LoadFromData(null)

方法调用中没有异常 UIImage.LoadFromData(null)

C#
跃然一笑 2023-09-16 20:13:39
在 IOS xamarin 表单项目中:UIImage.LoadFromData(null)没有例外和try { UIImage.LoadFromData(null); } catch {}catch 块中抛出异常..我需要没有 try|catch 的异常
查看完整描述

2 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

您要么有一个全局异常处理程序,要么从后台线程调用它而不等待对异步方法的调用,因此您的异常将被吞噬。例如,只需这样做:


public override void ViewDidLoad()

{

    base.ViewDidLoad();


    var x = UIImage.LoadFromData(null);

}

你会得到一个System.ArgumentNullException: Value cannot be null例外,但如果你这样做:


public override void ViewDidLoad()

{

    base.ViewDidLoad();


    Task.Run(() => {

        var x = UIImage.LoadFromData(null);

    });

}

即使您有全局异常处理程序,异常也会被吞掉并且您永远不会看到它。这是设计使然。任何未执行的即发即忘任务都await将吞噬(即不重新抛出)即发即忘任务中引发的任何异常。


等待任务会引发异常:


public override async void ViewDidLoad()

{

    base.ViewDidLoad();


    await Task.Run(() => {

        var x = UIImage.LoadFromData(null);

    });

}


查看完整回答
反对 回复 2023-09-16
?
忽然笑

TA贡献1806条经验 获得超5个赞

你正在吞下这个例外。将您期望的异常添加到 catch 块中


try

{

//code

}

catch(Exception ex)

{

//thrown exception

}


查看完整回答
反对 回复 2023-09-16
  • 2 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信