问个问题:调用一个方法传入参数,假如参数不允许为null,所以要对参数进行非空检查,那这个检查放在什么地方合适?放在被调用的方法里还是在调用之前进行检查,或者两个地方都进行检查?
11条回答 默认 最新
少年派的咖啡之旅 2018-08-10 03:07关注关于这点,你可以多看些jdk的源码,比如下面这段
public final SelectionKey register(Selector sel, int ops,
Object att)
throws ClosedChannelException
{
synchronized (regLock) {
if (!isOpen())
throw new ClosedChannelException();
if ((ops & ~validOps()) != 0)
throw new IllegalArgumentException();
if (blocking)
throw new IllegalBlockingModeException();
SelectionKey k = findKey(sel);
if (k != null) {
k.interestOps(ops);
k.attach(att);
}
.......jdk有很多类似的代码,在函数开始的时候,会对对象的状态、函数参数进行一些检查,因为这些可能导致业务的异常,所以在函数开始的时候进行检查并适当的抛出异常或者进行其他赋值操作等,用于保证下面的业务正常进行
希望回答能帮到你本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报