java 异常何时抛出_何时适合抛出异常?

例外点是沟通 exceptional 情况 .

从这个意义上讲:如果你的例子中所有条件都是假的绝对意外,并且没有有效的返回值来表明这种情况,那么抛出RuntimeException是合理的做法;但我可能会将消息更改为:

throw new RuntimeException("All conditions failed: " + some data)

如上所述:它是关于沟通;在这种情况下,调试问题的人 . 因此,在此处包含所需信息可能会有所帮助,以便了解为什么所有这些检查结果都是 false .

关键是:该方法有 Contract ;该 Contract 应包括此类细节 . 含义:如果该方法是公共的,您应该添加一个带有清晰描述的@throws RuntimeException .

在这种情况下使用RuntimeException也是一种有效的做法;正如您所做的那样 not 想要污染您的方法签名,并在整个地方使用已检查的例外 .

编辑:当然,需要 balancer . 示例:我的类通常如下所示:

public class Whatever {

private final Foo theFoo;

public Whatever(Foo theFoo) {

Objects.requireNonNull(theFoo, "theFoo must not be null");

this.theFoo = theFoo;

所以,我的构造函数可能会抛出一个NPE;是 . 但是:只有那里 . 我的所有方法都可以依赖于所有字段都被初始化为非null的事实;它们是最终的,所以它们总是非空的 .

含义:必须保持合理;并“发展”一种感觉:哪些问题是特殊但可能的;哪些是不可能的,你不会污染你的代码到处检查它们 .

最后;只是为了明确这一点 - 添加例外仅仅是等式的一部分 . 什么东西抛出,那么你需要 grab 一些东西!因此,如上所述: balancer 进来 . 无论你在代码中做什么都必须"add value" . 如果您的代码没有't fulfill a clear, defined purpose, then chances are: you don' t需要它!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560091.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java找到int需要char_Java2课后择题.doc

Java2课后择题Java2实用教程(第4版)课后选择题整理(以下内容可能会出现少量错别字,望见谅)——by[小坏蛋~]第一章选择题(1)下列哪个是JDK提供的编译器?A. java.exe B.javac.exeC.javap.exe D. javaw.exe(2)下列哪个是Java应用程序主类中正确的main方法?A. public …

kibana java script_Elasticsearch:创建 Runtime field 并在 Kibana 中使用它 - 7.11 发布 - TGCode...

在之前的文章 “Elasticsearch:使用 Runtime fields 对索引字段进行阴影处理以修复错误 – 7.11 发布”,我展示了如何使用 runtime field 来 shadow 一个已有的在 mapping 中的字段,比如 duration。在今天的练习中,我将展示如何创…

java 写 gz_java简写名词解释 - osc_gzyujipq的个人空间 - OSCHINA - 中文开源技术交流社区...

RPC(Remote Procedure Call)—远程过程调用实时编译器(Just In Time Compiler,JIT)XML 指可扩展标记语言(EXtensible Markup Language)WSDL 指网络服务描述语言 (Web Services Description Language)UDDI,英文为 "Universal Description, Discovery…

java 提取电话号码_java – 如何使用正则表达式提取字符串的电话号码?

如果我有一个包含以下内容的字符串:这是1测试123-456-7890我需要提取1234567890作为电话号码.我不想提取测试前的数字1.如何在java中使用正则表达式?我知道一种方法,但我不确定它是否是最好的解决方案:String inputString "This is 1 t…

asp连接mysql oledb_provider=microsoft.jet.oledb……数据库连接方法的疑惑?

很多朋友对ASP连接ACCESS数据库的方法不太熟悉.下面把几种方法列举出来,需要用的时候或者自己的程序出现问题的时候与这些源程序对照一下,说不定会有所启发.1.set dbconnectionServer.CREATEOBJECT("ADODB.CONNECTION")DBPath Server.MapPath("customer.mdb&qu…

php中统计记录条数,使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT

例如这样一个表,我想统计email和passwords都不相同的记录的条数CREATE TABLE IF NOT EXISTS test_users (email_id int(11) unsigned NOT NULL auto_increment,email char(100) NOT NULL,passwords char(64) NOT NULL,PRIMARY KEY (email_id)) ENGINEMyISAM DEFAULT…

php验证旧密码,PHP最佳实践之过滤、验证、转义和密码

过滤、验证和转义1).不要相信任何来自不受自己直接控制的数据源中的数据。包括但不限于:$_GET$_POST$_REQUEST$_COOKIE$argvfile_get_contents()远程数据库远程API来自客户端的数据2).解决办法:过滤输入。删除不安全的字符,在数据到达应用的存…

java pc端软件抓包,如何通过抓包工具fiddler获取java程序的http请求

抓包工具fidder是一个很轻巧的可以获取浏览器,程序的http,https请求的软件。百科地址:http://baike.baidu.com/view/868685.htm官网地址:http://fiddler2.com而java程序需要设置proxy才能生效:Proxy proxy new Proxy(…

linux php c 扩展,linux下编写php5.6的C扩展模块(双向链表)

cd /usr/local/src/php-5.6.7/ext/./ext_skel --extnamephp_listcd php_listvim config.m4PHP_ARG_ENABLE(php_list, whether to enable php_list support,dnl Make sure that the comment is aligned:[ --enable-php_list Enable php_list support])(dnl是注释标签…

java根据uml图写出实现代码,根据java代码生成UML图

根据java代码生成UML图根据java代码生成UML图这里介绍一个简单易用的eclipse插件ModelGoon,用来对已有代码生成UML图,下面以之前文章中的spring mvc工程为例如何安装和使用这个插件;这个spring mvc工程的代码在githbu上,地址是&am…

php递归 返回数组,php 递归 无限级分类并返回数组的例子

/*** 递归 无限级分类 返回数组* link:www.jquerycn.cn* date:2013/2/21*/$conn mysql_connect(localhost,root,123456);mysql_select_db(test);mysql_query("set names utf8");function getCate($pid 0){$sql "select * from cate wh…

php电商网站开发流程图,php网上购物平台设计+ER图+流程图.doc

php网上购物平台设计ER图流程图php网上购物平台设计ER图流程图摘要:广义来说,电子商务是指电子工具在商务活动中的应用。狭义来说,电子商务是在技术、经济高度发达的现代社会里,掌握信息技术和商务规则的人,系统化运用…

常见php面试题,常见的 PHP 面试题和答案分享

搜索热词如何直接将输出显示给浏览器?将输出直接显示给浏览器,我们必须使用特殊标记 。PHP 是否支持多重继承?PHP 只支持单继承。PHP 的类使用关键字 extends 继承另一个类获取图片属性(size,width,和 height)的函数是什么?获取图…

php 查找数组相同元素,查找数组中重复的元素

本文收集整理关于查找数组中重复的元素的相关议题,使用内容导航快速到达。内容导航:Q1:在c语言中输入数组两个数组,查找重复元素并输出怎么写啊可以一次读入N个数据。可以考虑以回车结束读入的一组。参考如下写法:#inc…

highcharts php 动态数据,php动态传数据到highcharts的方法

本文主要介绍了通过php动态传数据到highcharts的相关知识。具有很好的参考价值。1:在平时工作中,在对数据进行展示的时候,是直接通过后台提供的接口来获取json串,用来展示。今天别人问怎么在本地演示一下请求的动态数据。2&#x…

asm 5 java,java – 使用ASM(5.x)在字节代码中检测运行时的递归方法调用:howto?

问题如下;Java代码中的方法是:Rule foo(){return sequence(foo(), x());}这将引发解析循环,当然应该避免;但是,这是合法的:Rule foo(){return sequence(x(), foo());}现在,代码中的其他地方我可以访问RuleMethod,这是一个扩展MethodNode的类,因此我可以访…

mysql外键设置sql语句,SQL Server 2008之SQL语句外键

xin3721网络学院为广大学员,准备了丰富了教学视频。为了更好的让大学配合视频进行学习,拓展学员的知识面,我站特整理了大量的,技术文章,供学员参考。因此本教案需配合视频教程学习,视频教程地址为&#xff…

nginx index.php 端口,请教下 nginx 配置域名反代到本地端口这里面应该怎么加。

域名 1.31.tw 怎么添加反代可以正常访问 127.0.0.1:5000 端口? 我自己加的反代在域名开启 ssl 下 css 不正常,错位。弄一天了没弄明白,求大佬。谢谢下面是配置文件:server {listen 80;listen 443 ssl http2;ssl_certificate /usr/local/ngin…

php tar.gz文件,PHP解压tar.gz格式文件的方法,_PHP教程

PHP解压tar.gz格式文件的方法,本文实例讲述了PHP解压tar.gz格式文件的方法。分享给大家供大家参考,具体如下:1、运用php自带压缩与归档扩展(phar)$phar new PharData(song.tar.gz);//路径 要解压的文件 是否覆盖$phar->extractTo(c:/tmp,…

java 像素级碰撞检测,» 像素级碰撞检测类

//像素级碰撞检测package{import flash.display.BitmapData;import flash.display.BlendMode;import flash.display.DisplayObject;import flash.display.Sprite;import flash.geom.ColorTransform;import flash.geom.Matrix;import flash.geom.Point;import flash.geom.Rectan…