本问题已经有最佳答案,请猛点这里访问。

让构造函数抛出异常是一个好的实践吗?例如,我有一个类Person,我将age作为它的唯一属性。现在我提供的课程是

class Person{

int age;

Person(int age) throws Exception{

if (age<0)

throw new Exception("invalid age");

this.age = age;

}

public void setAge(int age) throws Exception{

if (age<0)

throw new Exception("invalid age");

this.age = age;

}

}

我觉得不错,但你的代码复制是不好的做法。只需从构造函数调用setage来减少大量重复的代码

在这种情况下抛出IllegalArgumentException可能是个好主意,这使得它非常明确。

@codemwnci:如果setAge是虚拟的(这里的情况也是这样),这不是一个好主意。

@你能解释一下吗?为什么虚拟方法不应该在构造函数内部调用?

@未知:这里有解释。

在构造函数中抛出异常并不是一个糟糕的实践。事实上,对于一个构造函数来说,这是表示存在问题的唯一合理的方法;例如,参数无效。

然而,明确声明或抛出java.lang.Exception几乎总是不好的做法。

java构造函数可以抛出异常吗_关于java:使构造函数抛出异常是一种好习惯吗?...相关推荐

  1. 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目

    王者荣耀是当下热门手游之一,小伙伴们是否想过如何制作一款属于自己的王者荣耀游戏呢? 本课程讲解了一个王者荣耀游戏的详细编写流程,即使你是刚入门Java的新手,只要你简单掌握了该游戏所需要的JavaSE ...

  2. java jsp取静态常量_获取java静态

    Android NDK开发系列教程4:对类变量进行操作 终于建了一个自己个人小站:https://huangtianyu.gitee.io,以后优先更新小站博客,欢迎进站,O(∩_∩)O~~ 通常我们 ...

  3. java字符串拆分成数组_用Java实现JVM第八章《数组和字符串》

    小傅哥 | https://bugstack.cn 沉淀.分享.成长,专注于原创专题案例,以最易学习编程的方式分享知识,让自己和他人都能有所收获.目前已完成的专题有:Netty4.x实战专题案例.用J ...

  4. java教务系统类设计_基于Java EE体系的高校教务管理系统的设计开发

    <基于Java EE体系的高校教务管理系统的设计开发>由会员分享,可在线阅读,更多相关<基于Java EE体系的高校教务管理系统的设计开发(3页珍藏版)>请在人人文库网上搜索. ...

  5. java 取栈顶元素_《Java实战之内存模型》详解篇

    内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行 JVM内存布局规定了Java在运行过程中内存申请.分配.管理的策略,保证了JVM的高效稳定运行 不同的JV ...

  6. java中属性外部化_用Java可外部化

    java中属性外部化 在理解Externalizable接口之前,您需要了解序列化.您可以在java中的序列化上阅读有关序列化的更多信息. Java提供了一种称为序列化的机制,以按字节的有序或字节序列 ...

  7. 为啥JAVA虚拟机不开发系统_理解Java虚拟机体系结构

    1 概述 众所周知,Java支持平台无关性.安全性和网络移动性.而Java平台由Java虚拟机和Java核心类所构成,它为纯Java程序提供了统一的编程接口,而不管下层操作系统是什么.正是得益于Jav ...

  8. java se好用吗_利用 Java SE 7 更好地管理资源

    2011 年 5 月发布 作者:Julien Ponge 本文介绍 Java 7 针对自动资源管理问题给出的解决办法,即 Coin 项目中提出的新语言结构 try-with-resources 语句. ...

  9. java数据库表不存在_如果Java生产代码中不存在并在JUnit中确认,则创建数据库表...

    Code-Apprentice 2 java sql junit jdbc 我正在用Java编写数据库程序,并且想要创建一个表(如果它还不存在).我从中了解DatabaseMetaData.getTa ...

  10. java原生的编译软件_原生态Java 程序员容易忽视的编程细节

    Java是Java程序设计语言和Java平台的总称,要想学好一门语言,打好基础最关键的,学习一种新的编程语言比学习新的口头语言要容易得多.然而,在这两种学习过程中,都要付出额外的努力去学习不带口音地说 ...

最新文章

  1. 进程控制概念简介 多线程上篇(三)
  2. Sencha应用程序的UI测试
  3. 阿里云服务器Linux配置数据库、jre、tomcat、部署javaweb
  4. Python 字符串操作
  5. 计算机应用基础2004年,计算机应用基础2004年下半年全国试题参考答案2
  6. android 应用程序 判断 ,如何判断Android应用程序是否正在前台运行?
  7. 23种设计模式----------建造者模式
  8. c#12星座速配代码_白羊座今日运势|2020/12/11
  9. 流媒体服务器性能测试
  10. 【岗位详情】腾讯广告机制策略算法工程师(北京)
  11. IOI2019团体总分前十排名:美国队夺魁,中国队第三,亚洲占六席
  12. C#语言入门详解(刘铁锰)---泛型
  13. 第十三首歌曲《翱翔的骄鹰》
  14. 轮播图和导航栏:Vue和JavaScript分别实现
  15. element plus之el-table行融合+列融合+小计行+自定义控件+样式自定义方案
  16. 程序员如何读懂火焰图
  17. 三相变频电源整流有什么特征?
  18. 【Serverless】云函数微信小程序
  19. ctab法提取dna流程图_CTAB法提取DNA原理及步骤、制胶、电泳
  20. Niushop分销系统佣金算法设计思路

热门文章

  1. 新华网:预装绿坝反对意见主要来自少数媒体和商家(转载)
  2. python简单小游戏代码
  3. 数学中希腊字母的读法
  4. python中stacked_Python:如何在stacked mod中生成可重复的结果
  5. Mysql系列课程--第三章 建表 插数据
  6. 【工具】OneNote共享笔记
  7. 蓝桥杯单片机第十三届第二场
  8. 教程:编写 Transact-SQL 语句
  9. 学生如何申请免费IDEA
  10. 天谕搬砖哪个服务器稳定,天谕手游搬砖方式有哪些 搬砖收益方式解答