问题标签 [do-catch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
2442 浏览

swift - URLSession.shared.datatask 的错误处理

我有一个查询 API 的函数,然后根据结果填充对象数组(参见下面的代码)。从检索到的 JSON 中,我可以使用保护语句来捕获任何错误,这意味着如果数据丢失,它会被捕获,但是如果 URL 不正确或函数无法连接到 URL,它会导致应用程序在线崩溃

并给出以下错误信息

如何使用 guard 来捕获此错误并返回类似于我处理丢失数据的错误消息?

0 投票
2 回答
3397 浏览

swift - Swift 中的 NSError 和错误

我已经看到关于 Swift 和 Swift 之间的区别已经存在一个问题,知道这些区别。但是,我不理解下面代码片段的行为,因为它编译正确。Swift 的错误处理机制要求每个没有出现在带有 throws 子句的函数中的 do-catch 块都包含一个通用处理程序(没有其他内容或for Error)。但是,似乎 using具有相同的效果。这里有人知道原因吗?我在另一个问题中读到“任何符合 ErrorType 的类都可以转换为 NSError。这些功能在文档中进行了描述。”。但是,文档NSErrorErrorcatchcatchNSError该答案所指出的并没有向我澄清这一点,因为它侧重于我没有使用的 Objective-C。

0 投票
2 回答
426 浏览

json - 在 Swift 上访问变量 do-catch 语句

我正在开发一个 json 解析的应用程序。我正在将 AlertView 用于 json 消息。但我无法访问 AlertView 中的 jsonmessage 变量。如果我将 AlertView 放在 DO 中,我会收到此错误:“libc++abi.dylib:以 NSException (lldb) 类型的未捕获异常终止”对不起我的英语不好。这是我的代码:

0 投票
1 回答
37 浏览

ios - 当 String 不符合 Error 时抛出的函数命中 do catch 块时,如何获得正确的错误?

在这里,我使用 do catch 块来捕获 invalidAge 错误场景,我不太确定这是否正确?当我在操场上跑步时,catch 块永远不会被击中。

在这里,作为 do catch 块的替代方法,我通过将其设为可选来处理错误,因此我猜测 do catch 块不是必需的。但是,在打印结果时,它返回 Optional(() 而不是可选的 Int。如果我出错了,我们将不胜感激。

0 投票
1 回答
65 浏览

swift - 从 do-catch 块访问变量的最佳实践

标准的 do-catch 块在 Swift 中如下所示:

我的问题是访问在 do-catch 块中创建的变量的最佳做法是什么?我的直觉告诉我首先在块外创建一个未包装的可选变量(let file: Data!),但感觉不是很优雅。有一个更好的方法吗?

0 投票
1 回答
46 浏览

swift - Try Catch in Swift, Can't figure it out

I'm trying to put the following in a do try catch block, but I always end up getting a coding error. Can someone help me?

0 投票
1 回答
30 浏览

swift - 我需要抛出什么错误来处理特定的 catch 块 + Swift 错误处理

我想添加代码以引发需要“catch let printerErrorsecond”和最后一个 catch 块来处理错误的错误。我尝试将 toPrinter 参数的值更新为多个值,但没有任何运气。我还尝试了一些 else if 语句,但似乎无法让最后两个 catch 块中的任何一个来处理错误。似乎可以在 PrinterError 枚举中添加两者的情况,但经过多次尝试,我无法解决问题。您可以提供更好的任何基于代码的解决方案!