জেডিকে উত্স কোডটি পড়ার সময়, আমি এটি দেখতে পাই যে লেখক প্যারামিটারগুলি নালাগুলি পরীক্ষা করে কিনা এবং তারপরে নতুন নলপয়েন্টারএক্সসেপশন () ম্যানুয়ালি নিক্ষেপ করবে। কেন তারা এটা করে? আমি মনে করি এটি করার দরকার নেই যেহেতু এটি কোনও নালপয়েন্টারএক্সেপশন () নিক্ষেপ করবে যখন এটি কোনও পদ্ধতি কল করে। (উদাহরণস্বরূপ, এখানে হাশম্যাপের কয়েকটি উত্স কোড রয়েছে :)
public V computeIfPresent(K key,
BiFunction<? super K, ? super V, ? extends V> remappingFunction) {
if (remappingFunction == null)
throw new NullPointerException();
Node<K,V> e; V oldValue;
int hash = hash(key);
if ((e = getNode(hash, key)) != null &&
(oldValue = e.value) != null) {
V v = remappingFunction.apply(key, oldValue);
if (v != null) {
e.value = v;
afterNodeAccess(e);
return v;
}
else
removeNode(hash, key, null, false, true);
}
return null;
}
ArgumentNullException
(এর পরিবর্তে NullReferenceException
) এরকম ক্ষেত্রে উত্থাপন করা - আপনি NullPointerException
এখানে কেন স্পষ্টত উত্থাপন করবেন (এটি ভিন্ন ভিন্ন নয় ) এটি আসলেই একটি ভাল প্রশ্ন ।
IllegalArgumentException
NullPointerException