我从C来到Java.

在Java和C中,我们都可以指定异常.看起来像这样:

void function_name() throw(Exception)

{

...

if (error)

{

throw Exception("Error");

}

...

}

据我所知,在C中编写异常规范被认为是一种不好的做法.与C不同,在Java中,我们必须这样做.所以,我的问题是:

用Java编写异常规范有什么好处?

解决方法:

您只需在方法签名中指定检查的异常(Exception类的子类).无需指定未经检查的异常(RuntimeException类的子类).

在方法签名中指定异常是语言语义定义的固有Java惯例.但是对此也有很多争议.一些团队和项目甚至认为这是不好的做法,并且仅使用未经检查的异常.

通常,作为一种好的做法,当您将其定义为方法约定的一部分时,应抛出一个检查异常,即方法调用者必须知道某些特定的(相当可能和可恢复的)错误类型,并捕获并处理该错误,或将其传递给调用堆栈.未经检查的异常通常表示方法代码中的某些内部错误,因此无需捕获.

标签:exception,specifications,java,c-4

来源: https://codeday.me/bug/20191028/1951091.html

java中的规范是什么意思_Java中的异常规范有什么好处?相关推荐

  1. java中char是几个字节_Java中char占用几个字节

    在讨论这个问题之前,我们需要先区分unicode和UTF. unicode :统一的字符编号,仅仅提供字符与编号间映射.符号数量在不断增加,已超百万.详细:[https://zh.wikipedia. ...

  2. Java传统的io和nio区别_Java中IO和NIO的本质和区别

    简介 终于要写到java中最最让人激动的部分了IO和NIO.IO的全称是input output,是java程序跟外部世界交流的桥梁,IO指的是java.io包中的所有类,他们是从java1.0开始就 ...

  3. java语言中的数据是如何定义_java中的数据类型

    java中的数据类型 java语言的数据类型包括两种,基本数据类型和引用数据类型. 定义 基本数据类型:变量名指向具体的数值. 引用数据类型:变量名指向存数据对象的内存地址,即变量名指向hash值. ...

  4. java 继承 实现 会重写 方法吗_java 中继承,组合,重载,重写的实现原理 (转)...

    我们知道,继承,组合,重载,重写是java语言的面向对象实现的基本特征. 那么在java内部,究竟是如何实现这些面对对象的基本特征的呢? 继承和组合是面向对象中代码复用的主要实现方式,他们可以达到类似 ...

  5. java如果把字符串转成对象_Java中的重复对象:不仅仅是字符串

    当Java应用程序消耗大量内存时,它本身就会出现问题,并可能导致GC压力增加和GC暂停时间过长.在我之前的一篇文章中,我讨论了Java中常见的内存浪费源:重复字符串.两个 java.lang.Stri ...

  6. java访问方法修饰词四个_java中的四个修饰词(访问权限)

    Java类成员的访问控制权限 有了包的概念之后,下面就可以开始为读者讲解 JAVA 语言之中的访问控制权限 的概念了.在 JAVA 中有四种访问控制权限,分别为:private.default.pro ...

  7. java购买同一件商品时加锁_java中CAS的ABA问题思考和整理(不看后悔系列)

    前言 听说经常面试被问到~今天同事说了这个问题,就查了一下这问题,觉得挺有意思的,就整理出来跟大家分享下.主要思考下面几个问题: 1.什么是CAS? 2.什么是CAS的ABA问题? 3.怎么解决这个问 ...

  8. java中子类与父类强制转换_java中父类强制转换成子类的错觉

    引言:父类引用指向子类对象在java中十分常见,比如: Object object=new a();//a是一个类名 但是有时候我们看见子类引用指向了父类对象,就是上边的反过来,比如 图片中圈1标识的 ...

  9. Java所有函数都是动态的_Java中的函数动态调用

    //------------------------------------- //类ArgumentHolder //用于调用参数的封装,实现变长参数及 //不同类型参数的统一形式地传递 //成员变 ...

最新文章

  1. 让您的电脑在任意目录可以支持图片的粘贴,试试看呗(第二篇)~
  2. 物理搬砖问题_搬砖姿势:风法
  3. 肖像:作家艺术家之一
  4. 博古通今的孩子是怎么养成的?答案就在这本影响了无数中国人思想的奇书里……
  5. 安卓布局位置,dp与px的区别
  6. 今天的离离原上草的飞鸽传书
  7. NOI入门级:算法之动态规划
  8. 针对不同包之间的action跳转,怎么配置?
  9. myeclipse连接mysql生成数据表时中文字符乱码或问号(解决方法)
  10. vue内容省略表示(超过15位显示...)
  11. c语言中文纠错,c语言纠错。。急急急。。
  12. 赛门铁克卸载工具CleanWipe14亲测有效
  13. java mysql点赞功能_怎么实现一个点赞功能?
  14. Appium+python自动化(二十一)- 让猴子按你指令大闹手机,让我们都成为耍猴高手(超详解)...
  15. exter与static的用法
  16. 2019 CSP-J 游记(CQ LNBS考场 的退役之战)
  17. Flutter访问webservice
  18. 【华为机试】【校招】【Java】机器人走迷宫(DFS)
  19. element-ui——安装element-plus
  20. 阿拉伯字母发音--全集

热门文章

  1. 为什么同步的StringBuffer从来都不是一个好主意
  2. 自定义Spring Data JPA存储库
  3. Web开发框架–第1部分:选项和标准
  4. 使用Aspect和Spring Profile进行电子邮件过滤
  5. ORM仇恨者无法理解
  6. Linux 命令之 unzip -- 解压缩文件
  7. QPW 企业维度评分表(tf_company_dimesion)
  8. Linux 命令之 mv -- 移动文件/重命名文件
  9. HH SaaS电商系统的标签系统设计
  10. idea连接mysql数据库时连接显示错误caching_sha2_password