首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

谁来检查方法参数合法性

我们在编程中的函数或者是方法,大多数都是有参数的。参数对于方法来说是很重要的输入数据,传入的参数值的合法性影响着方法的稳定性,严重时甚至可能导致崩溃问题的出现。...book.getPrice()); } } 就这个案例而言,两者都可以,但是有没有什么规范呢 其实还是有一些约定的 如果方法是public,protected等这样被外部可调用的时候,方法定义时需要进行值的合法性检验...,因为无法确保外部始终传递合法的参数值。...null) { System.out.println(book.getPrice()); } } 我们通过增加@param book could be null就可以告诉调用者,不用做合法性检查...此外我们也可以使用@Nullable或者@NonNull来表明当前参数的检查职责归属。 至此我们也理清了检查方法参数合法性的责任归属,欢迎评论交流。

98020

你如何检查参数合法性

跟一般的合法性检查不同,断言失败的时候抛出AssertError;跟一般的合法性检查不同,除非你启用他们否则断言对你没有任何影响和消耗。...在java命令行启用指令: -ea 或者 -enableassertions 更多断言的信息,查看java手册的Asserts; 检查参数合法性非常重要,即使你的方法中没有用到,但是存储起来了,后面会用到...构造函数代表了一个特殊例子的原则:你应该检查即将存储稍后会用到的参数合法性。 检查构造函数参数合法性非常重要,它可以防止构造一个违反类的不变性的对象。...异常情况 在执行方法计算之前,你应该检查方法参数 。这个规则也有异常情况。 一个重要的异常情况是:合法性检查代价非常高并且重要, 并且检查是在执行计算的过程中执行的。...换句话说,计算常常会抛出参数合法性检查的异常,并不会匹配方法在文档中申明的异常。这种场景下,你应该使用异常翻译成语。转换自然异常为正确的异常。

1.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

Calcite系列(七):执行流程-合法性校验

基本概念 合法性校验是SQL处理的第二步,在计算执行前,提前验证SQL正确性。该验证操作是非线性的,需要基于语法树处理各种嵌套的复杂情况。...Calcite合法性校验基于SqlValidator 接口和对应实现类SqlValidatorImpl 完成。...Calcite合法性校验涉及到两个基本概念: 命名空间(SqlValidatorNamespace):描述SqlNode节点关联的关系模型信息,包括Schema信息,字段类型等 命名解析域(SqlValidatorScope...SqlValidatorNamespace getMonotonicity 返回某个表达式在该解析域内是否有序 getOrderList 作用域内有序的表达式,若没有则返回null validateExpr 在解析域范围内验证表达式的合法性...查找解析域内的Window表达式,未找到则返回null resolveTable 解析域范围内解析数据表的信息 resolveColumn 解析列名并返回其类型,不合法的抛出异常 执行流程 Calcite合法性校验主要分为两个执行阶段

12932

3 分钟看懂如何判断括号的合法性

东哥带你手把手撕力扣~ 作者:labuladong 公众号:labuladong 若已授权白名单也必须保留以上来源信息 对括号的合法性判断是一个很常见且实用的问题,比如说我们写的代码,编辑器和编译器都会检查括号是否正确闭合...本文就来聊一道关于括号合法性判断的算法题,相信能加深你对栈这种数据结构的理解。 题目很简单,输入一个字符串,其中包含[](){}六种括号,请你判断这个字符串组成的括号是否合法。...--; if (left < 0) return false; } return left == 0; } 如果只有圆括号,这样就能正确判断合法性...leftOf(char c) { if (c == '}') return '{'; if (c == ')') return '('; return '['; } 以上就是判断括号合法性的算法思路

72530

3 分钟看懂如何判断括号的合法性

预计阅读时间:3 分钟 对括号的合法性判断是一个很常见且实用的问题,比如说我们写的代码,编辑器和编译器都会检查括号是否正确闭合。而且我们的代码可能会包含三种括号[](){},判断起来有一点难度。...本文就来聊一道关于括号合法性判断的算法题,相信能加深你对栈这种数据结构的理解。 题目很简单,输入一个字符串,其中包含[](){}六种括号,请你判断这个字符串组成的括号是否合法。 ?...如果只有圆括号,这样就能正确判断合法性。...以上就是判断括号合法性的算法思路,核心就是利用了栈先进后出的特点,栈顶元素就是最近的左括号,遇到右括号就在栈顶判断就行了。遇到括号相关的问题,可以优先考虑一下是否能借助栈来解决。 ?

93930
领券