首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Swift中捕获算术溢出错误?

如何在Swift中捕获算术溢出错误?
EN

Stack Overflow用户
提问于 2016-03-13 18:14:15
回答 2查看 9.1K关注 0票数 14

这个可能很简单。我们知道运算符&+对整数执行模运算(环绕),而运算符+则会导致错误。

代码语言:javascript
复制
$ swift
  1> var x: Int8 = 100
x: Int8 = 100
  2> x &+ x
$R0: Int8 = -56
  3> x + x
Execution interrupted. Enter Swift code to recover and continue.

这是什么错误?我不能抓住它,我也不能把它交给一个可选的:

代码语言:javascript
复制
  4> do {try x + x} catch {print("got it")}
Execution interrupted. Enter Swift code to recover and continue.
  5> try? x + x
Execution interrupted. Enter Swift code to recover and continue.

我很确定这类错误是来自this Stack Overflow question的相同类型的错误(除以零),但是我不知道这种错误是否可以被捕获。我错过了什么简单的东西?它能被困住吗?如果是这样的话,是怎么做的?

EN

Stack Overflow用户

发布于 2020-02-01 11:04:59

看起来这已经成为Swift 5,addingReportingOverflow(_:)中的一种非静态方法。

例如,

代码语言:javascript
复制
UInt8.max.addingReportingOverflow(1)

将返回(partialValue: 0, overflow: true)参见关于 manual page的更多信息

当然,以&开头的普通算术运算符允许溢出而不返回溢出报告,

代码语言:javascript
复制
UInt8.max &+ 1

0作为UInt8返回

票数 5
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35973899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档