猿问

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

在 IOS xamarin 表单项目中:

UIImage.LoadFromData(null)

没有例外

try { UIImage.LoadFromData(null); } catch {}

catch 块中抛出异常..

我需要没有 try|catch 的异常


跃然一笑
浏览 94回答 2
2回答

杨魅力

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

忽然笑

你正在吞下这个例外。将您期望的异常添加到 catch 块中try{//code}catch(Exception ex){//thrown exception}
随时随地看视频慕课网APP
我要回答