Dart 抛出和重新抛出有什么区别?

2023-11-26

这可能是显而易见的,但我仍然无法理解两者之间的区别throw and rethrow什么时候应该使用其中任何一个?


根据有效飞镖:

如果您决定重新抛出异常,最好使用rethrow语句而不是使用抛出相同的异常对象throw. rethrow保留异常的原始堆栈跟踪。throw另一方面将堆栈跟踪重置到最后抛出的位置。

最大的区别是原始堆栈跟踪的保留。


他们提供了 2 个示例来展示预期用途:

Bad:

try {
  somethingRisky();
} catch (e) {
  if (!canHandle(e)) throw e;
  handle(e);
}

Good:

try {
  somethingRisky();
} catch (e) {
  if (!canHandle(e)) rethrow;
  handle(e);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Dart 抛出和重新抛出有什么区别? 的相关文章

  • 更改语言 Flutter 的按钮

    我正在 Flutter 中构建一个应用程序 到目前为止 我正在使用 JSON 国际化 其中应用程序的语言基于用户手机中默认的语言 它工作得很好 但我想给用户有机会在不更改手机系统语言设置的情况下更改语言 只需单击按钮 然后应用程序即可更改语
  • .NET 迭代器包装抛出 API

    我有一个带有 API 的类 它允许我请求对象 直到它抛出一个IndexOutOfBoundsException 我想将它包装到一个迭代器中 以便能够编写更清晰的代码 但是 我需要捕获异常以停止迭代 static IEnumerable It
  • ASP.NET Web Api 2 中的异常处理

    Problem 我需要处理 Web api 2 异常并返回一个具有正确状态代码的丰富对象 401 表示未经授权 404 表示 ContentNotFound 等 以及一些额外信息作为内容 此外 我需要内容看起来像序列化的Exception对
  • 如何确定异常是否属于特定类型

    我有一段 try catch 代码 try catch Exception ex ModelState AddModelError duplicateInvoiceNumberOrganisation The combination of
  • Flutter 中的 Android 许可证

    4 天前一切正常 我进行了更新 许可证停止通过 我到目前为止所做的事情 检查了工具过时的东西 gt 不起作用 flutter doctor android licenses gt 不起作用 sdkmanager licenses gt 不起
  • 将字符串转换为双精度 - VB

    VB中有没有一种有效的方法来检查字符串是否可以转换为双精度型 我目前正在尝试将字符串转换为双精度型 然后查看它是否引发异常 但这似乎减慢了我的申请速度 Try if number then format it current CDbl x
  • PHP MVC 应用程序中哪里可以捕获异常?

    我有一个中小型 PHP 应用程序 用于练习 OOP 和 MVC 技能 我有初始化 引导程序调用的文件Router谁打电话控制器 gt 服务层 gt 存储库 数据库 然后将变量发送回视图层 所有依赖项均由 DiC IOC 处理 我创建抽象类
  • 如何在flutter项目中使用http拦截器?

    我必须向我的所有 Api 添加标头 有人告诉我为此使用 http 拦截器 但我无法理解如何做到这一点 因为我是颤振的新手 谁能帮我举个例子吗 您可以使用http 拦截器 https pub dev packages http interce
  • 如何修复 webview_flutter 中的白屏?

    运行 webview flutter 示例应用程序 https github com flutter plugins tree master packages webview flutter example https github com
  • 如何知道 Dart 中的复选框或单选按钮是否被选中?

    我有一个复选框和一个单选按钮组 我想知道是否选中了该复选框以及选择了哪个单选按钮 我如何在 Dart 中做到这一点 假设我们有这样的 HTML
  • 谷歌地图颤动检查点是否在多边形内

    我正在使用 google maps flutter 插件开发 flutter 项目 我想检查用户位置是否位于我在地图上创建的多边形内 有一个简单的方法使用 JavaScript api con tainsLocation 方法 但对于 fl
  • 如何更改 ElevatedButton 颜色或阴影 Flutter

    我当时用的是RaisedButton直到 Flutter 弃用了它 我们不能再使用它了 有一个建议说 使用ElevatedButton相反 所以我尝试使用它 但我看不到类似的属性color elevation focusColor etc
  • 使用 ELMAH 记录 WCF 服务的异常

    我们正在使用优秀的ELMAH http code google com p elmah处理 ASP NET 3 5 Web 应用程序中未处理的异常 这对于除使用 REST 功能使用的 WCF 服务之外的所有站点都非常有效 当操作方法中发生应
  • Asp.net mvc 重写基本控制器中的 OnException 不断传播到 Application_Error

    我试图返回一个视图 而不是根据我的应用程序可能发生的某些错误向用户发出重定向 我想处理错误 将它们记录在我的基本控制器中 我不希望错误传播到我的Global asax Application Error 方法 因为我希望此方法处理我的应用程
  • 已发布的 Flutter 应用程序在启动时崩溃

    编辑 此问题的解决方案是将您的 flutter 版本升级到较新的 dev 版本 then 1 7 0 您还可以上传单独的 APK 版本 但我个人不喜欢这个选项 请确保您没有从 flutter github 开发存储库下载 错误的构建 因为那
  • 如何在 flutter 中仅显示列表中的 5 项

    我想在 flutter 中显示一个列表 我正在使用listView 问题是我只想显示 5 个项目 我的意思是当用户向下滚动时我想从开始索引中删除并将另一个小部件添加到包含我的小部件的列表的末尾 但是当我这样做时ScrollView 不会停留
  • 配置根项目“firebase_auth”时出现问题

    my error 我无法构建 apk 发布文件 我完成了应用程序一段时间 没有出现错误 几天后 我在构建应用程序时收到此错误 请告诉我如何摆脱它 我尝试了 4 个小时 什么也没得到 FAILURE Build failed with an
  • 如何将异常序列化为Json

    C 异常是 ISerialisable 因此它们不能也是 DataContract 因此我无法使用 JsonDataContractSerializer 将异常序列化为 JSON 的替代方案是什么 由于这个问题还没有真正得到解答 只需创建一
  • java异常处理策略[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 捕获 foreach 条件中抛出的异常

    我有一个foreach在 foreach 本身的条件下循环期间中断的循环 有没有办法try catch抛出异常然后继续循环的项 这将运行几次 直到异常发生然后结束 try foreach b in bees exception is in

随机推荐

  • 将SqlDataReader写入立即窗口c#

    我正在尝试调试引发错误的 SQL 响应 将 varchar 值 0 01 转换为数据类型位时转换失败 这没有多大意义 因为对象没有任何书籍 Code using var connection connectionProvider GetDb
  • 如何提前ServiceStack中的会话超时

    ServiceStack 中的身份验证 存储库和缓存提供程序提供了一种简单的方法来将登录会话添加到 Web 应用程序 几乎不需要任何额外的代码 我发现可以配置身份验证提供程序的会话超时 例如 new CredentialsAuthProvi
  • 如何更改 JBoss 7 java Web 服务中的肥皂地址

    如何更改网络服务中的肥皂地址 我正在开发 JBoss 7 1 1 我有这个网络服务类 WebService public class Card WebMethod public CardResponseDTO insertCard WebP
  • 文件获取内容不起作用?

    我正在使用cakephp 我正在尝试使用 file get contents 从 facebook 获取数据 我收到警告 警告 2 file get contents function file get contents URL 服务器中禁
  • 存储每日页面浏览量以及总浏览量的最有效方法

    关于在数据库中存储文章或视频的页面浏览量进行了很多讨论 但我似乎找不到任何有关存储每日页面浏览量的信息 例如 DeviantArt 在一个小图表中向您显示过去 15 天左右的时间以及每个人获得的页面浏览量 以及个人资料的总页面浏览量 您可以
  • 对列表中的元素求和[重复]

    这个问题在这里已经有答案了 这是我的代码 我需要对列表中未定义数量的元素求和 这个怎么做 l raw input l l split l pop 0 我的输入 3 5 4 9输入后我通过删除第一个元素l pop 0 After split
  • 重新排序sql server中的身份主键

    是的 我非常清楚后果 但我只是想重新排序它们 从1开始到结束 如何使用单个查询对键重新排序 它是聚集主键索引 重新排序就像 First record Id 1 second record Id 2 主键是 Int 删除PK约束 删除身份列
  • 错误:任务“:app:processDebugResources”执行失败。 > 在索引 4 处

    在最新 SDK 的修订版 2 更新后 我在构建项目时遇到问题 抱歉 我不记得版本号 我之前成功运行了代码 我不认为我的项目中有任何错误 我经常收到错误消息 因为 IDE 发生内部错误 与此有关 请帮忙谢谢 下面给出了所需的代码 应用程序 b
  • LLVM out of source pass build:不支持可加载模块(在 Linux 上)

    几周前 我在 debian wheezy 上从 trunk 编译并安装了 LLVM 配置和制作 现在尝试从源代码中编译llvm mutate 传递 AFAICC llvm mutate 遵循 cmake超出源通道构建说明 当尝试构建 llv
  • 防止按下后退按钮后重新提交表单

    我在这里的处境有点微妙 在我的组织中 我们设计库存管理系统 它是一个基于 JSP 页面和处理它们的 servlet 的 Web 应用程序 我被要求解决一个特定问题 我们有一个带有 HTML 表单的 JSP 页面 其中包含库存详细信息 当用户
  • 如何使用buildozer和最新的kivy构建kivy应用程序?

    使用 buildozer 我已经成功构建并运行了一个 Android 应用程序 Buildozer 使用 kivy stable 1 7 如何使用最新的 kivy 1 8 构建 kivy 应用程序 我注意到在https github com
  • Android Espresso 多重索引失败

    我们在应用程序中使用 multidex 很长一段时间 但最近最新更新后 它在 android API 如果我为缺少的类定义 multidexKeepProguard 例如 java lang NoClassDefFoundError rx
  • 使用 CSS 为透明文本添加阴影

    有没有办法添加一个阴影透明文本以便文本后面的背景保持可见 也许有某种方法可以使用文本本身作为掩码 或者文本混合模式 具有合理的跨浏览器支持 我天真的尝试 span background image url http i imgur com
  • VS Code 的文档/智能感知弹出窗口在鼠标悬停时消失

    将鼠标悬停在变量上后 我在滚动弹出框时遇到问题 它就这样消失了 我希望能够滚动浏览它 我在 Windows 10 x64 上使用带有 Python 扩展的 Visual Studio Code 1 41 1 Set editor hover
  • C# 是否支持返回类型的类型推断?

    这只是一个好奇心 是否有一个基本的事情可以阻止这样的事情 或者纠正我 如果已经有某种方法 public TTo Convert
  • 如何并行使用 Swift async/await

    考虑下面的代码 class UserProfile private var img UIImage didSet update ui private var bio String didSet update ui private func
  • 如何检查多维数组的任何子数组中的特定键是否存在特定值?

    我需要在多维数组中搜索任何索引子数组中的特定值 换句话说 我需要检查多维数组的单个列中的值 如果该值存在于多维数组中的任何位置 我想返回true否则false my array array 0 gt array name gt john i
  • 服务响应时间慢:Java SecureRandom 和 /dev/random [重复]

    这个问题在这里已经有答案了 我正在尝试调试 Tomcat 上部署的应用程序提供的一些缓慢响应 现在我专注于SecureRandom and dev random 已调查并排除了其他一些可能的原因 模式如下 第一次调用正好需要30 0Tomc
  • 如何使用 Spring Boot 将 json 映射到对象[重复]

    这个问题在这里已经有答案了 你好 我想知道如何在使用 Spring Boot 时将我的 json 消息映射到 java 中的对象 假设我得到的 json 类似 customerId 2 firstName Jan lastName Nowa
  • Dart 抛出和重新抛出有什么区别?

    这可能是显而易见的 但我仍然无法理解两者之间的区别throw and rethrow什么时候应该使用其中任何一个 根据有效飞镖 如果您决定重新抛出异常 最好使用rethrow语句而不是使用抛出相同的异常对象throw rethrow保留异常