這是驗證傳遞給函數,即輸入的最佳方式做您驗證所有輸入出發某些東西一樣編碼風格 - 輸入驗證
class A;
void fun(A* p)
{
if(! p)
{
return;
}
B* pB = p->getB();
if(! pB)
{
return;
}
.......
}
之前還是你寫這樣的:
void fun(A* p)
{
if(p)
{
B* pB = p->getB();
if(pB)
{
.....
}
}
}
我在問這是因爲,如果我使用第一種風格,那麼我的代碼中會有多個返回語句,很多人都說不好(不知道爲什麼),如果使用第二種風格,那麼會有在我的代碼中嵌套層次太多。
這與NullPointerException有何不同? – Arkadiy 2009-01-23 20:02:41
輸入先決條件不限於指針非空的情況 – 2009-01-26 16:01:52