抛出或尝试捕获

2023-12-10

决定是否添加时的一般经验法则是什么throws方法的子句或使用try-catch?

从我自己读到的内容来看,throws当调用者破坏了契约(传递的对象)并且try-catch当在方法内部执行的操作期间发生异常时应使用。它是否正确?如果是这样,调用方应该做什么?

P.S:通过 Google 和 SO 进行搜索,但希望对此有明确的答案。


  • 仅当您能够以有意义的方式处理异常时才捕获异常
  • 如果异常由当前方法的使用者处理,则声明向上抛出异常
  • 如果异常是由输入参数引起的,则抛出异常(但这些异常通常未经检查)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

抛出或尝试捕获 的相关文章

随机推荐

  • 检查自定义 Twig 函数是否存在,然后调用它

    我测试是否存在自定义 Twig 函数 if methodExist sg datatables render sg datatables render datatable else datatable render datatable en
  • Webview 的 loadData() 在 android 10.0 中不起作用(Q)

    这里我试图将 Html 代码作为字符串加载到 webview 中loadData 此方法没有发生任何事情 但相同的方法在低于 sdk 29 中像魅力一样工作 webview loadData html code text html null
  • Beam/Dataflow 中的批量 PCollection

    我在 GCP Dataflow Apache Beam 中有一个 PCollection 我不需要一一处理 而是需要 按N 组合 就像是grouped N 因此 在有界处理的情况下 它将按批次中的 10 个项目和最后一批中剩余的项目进行分组
  • Java + SSH + Postgres

    我们正在实施一个大学项目 Java 的拼车服务 我们需要解决一个与 如何管理 postgres 服务器 相关的问题 PostgreSQL 数据库配置在名为 golem 130 136 4 sth 的实验室服务器中 只能通过同一子网 130
  • 关于Scala变量可变性的问题

    我明白那个val关键字确定基础变量是不可变类型 以后不能重新分配 现在我在 scala 编程中遇到了一段 第 3 章 scala 中的后续步骤 用类型参数化数组 它指出 val greetStrings Array String new A
  • 等待光标并禁用 java 应用程序

    我想让用户按下按钮来启动后台线程 当线程正在处理时 我希望发生两件事 1 应显示 WAIT CURSOR 2 应用程序不应响应鼠标事件 根据setCursor 文档 当该组件的 contains 方法针对当前光标位置返回 true 时 将显
  • Swift:无法在某些闭包中分解元组(例如,通过枚举减少)?

    当使用map 和enumerate 时 Swift将分解枚举元组 map enumerate 1 2 3 index element in index element 然而 这似乎不能与额外的闭包参数一起使用 例如 使用reduce red
  • 相同的视图控制器加载两次

    我读过关于这个问题的几篇文章 但没有一个能解决我的问题 我正在编写一个应用程序 我必须单击一个按钮 准备 才能转到以下 ViewController 单击按钮时 它还会在两个视图控制器之间传递数据 问题是 当我单击按钮时 以下 ViewCo
  • ActionView 中的 Yield 魔法是如何发挥作用的?

    I was 看着content for 是如何工作的并观察到block call in the capture erb with buffer方法 它显然神奇地写入了缓冲区变量 然后该变量被修剪 但是 我认为这已被弃用 您可以致电现在 这是
  • 为什么RSA加密用C#和Java返回不同的结果?

    I using 时间 2019 03 17 标签 c RSACryptoServiceProvider JAVA KeyFactory getInstance RSA 密码 我将公钥 指数 模数 作为字节数组从java发送到c 没关系 有相
  • 如何在 dot net core 3.0/3.1 上的 razor 页面中添加区域?

    我想在 core 3 1 中添加区域剃刀页面 但微软文档是为了asp点网核心2 2 他们想要创建一个2020 年 1 月新报告 有人知道如何向核心 3 1 添加区域吗 我在谷歌上搜索了很多 但找不到答案 在 AdminLayout 中 a
  • 如何在SVN中存储配置参数?

    与许多项目一样 我们部署到许多环境 QA UA 开发人员主干等 在 SVN 中存储敏感配置参数的最佳方式是什么 或者 您不应该只在服务器上维护一个较小的未版本化文件 其中包含凭据吗 主要是 我们不想向每个开发人员公开生产凭据 我宁愿提供配置
  • Win10 Powershell - 简单的 If/Elseif 取决于条件顺序?

    我正在尝试编写一个部署脚本来检查操作系统主要版本 然后基于该版本运行命令 我可以抓住它就好 System Environment OSVersion Version Major 但是当我尝试在 if elseif 语句中使用它时 我总是得到
  • 高分辨率移动设备 1080px(Xperia Z 等)的媒体查询

    我正在尝试掌握不同设备的媒体查询 我尝试了我的新索尼 Xperia Z 手机 由于分辨率高 可以以全尺寸网站格式显示 如何添加媒体查询来重新调整网格大小和格式 如标准手机比例 在 Xperia 上 字体也太小而无法阅读 需要显示得更大 对于
  • 为什么需要“string DB 20, 22 dup('?')”中的“20, 22”?

    我一直用 for 定义字符串DB 20 22有一段时间不知道为什么 我读到第一个字节是缓冲区大小 第二个字节保存字符串使用的字节数 但我不知道这两个值是否都是强制性的 例如 当我定义一个字符串并想要将寄存器指向它时 我必须使用 2 来跳过这
  • 关于在需要常量表达式的上下文中使用左值常量表达式的问题

    include
  • Spring Boot 应用程序 - 服务器上下文路径

    我使用 Spring Initializer 嵌入式 Tomcat Thymeleaf 模板引擎生成了一个 Spring Boot Web 应用程序 并将其打包为可执行 JAR 文件 使用的技术 Spring Boot 2 0 0 M6 J
  • 即使安装 m2e + DWM 后,Eclipse Indigo SR2 EE 中也没有 Maven 菜单项

    我已经安装了 Eclipse Indigo SR2 EE Eclipse Java EE IDE for Web Developers Version Indigo Service Release 2 Build id 20120216 1
  • 我应该信任哪个编译器?

    这将是一个新手问题 但我正在尝试做一个小练习C语言 不C 我遇到了一些问题 假设我想在方法中使用数组 其大小取决于参数之一 void someFunc int arSize char charArray arSize DO STUFF 当我
  • 抛出或尝试捕获

    决定是否添加时的一般经验法则是什么throws方法的子句或使用try catch 从我自己读到的内容来看 throws当调用者破坏了契约 传递的对象 并且try catch当在方法内部执行的操作期间发生异常时应使用 它是否正确 如果是这样