Có nên luôn kiểm tra parameter của method là khác NULL?

Một method có parameter là các object, mình có nên phải luôn kiểm tra là các parameter này khác null hay ko ?

Kiểu như vầy

public doSomething(Object a, Object b){
   if(a != null && b!=null){
   // do some thing;
   }
}

Hoặc kiểu như này

public doSomething(Object a, Object b){
       if(a == null || b == null){
          throw new IlegalException("a and b can not be null");
       }
       // do something;
}

có, với những method là public.
trong nhiều trường hợp bạn chắc chắn là nó không bao giờ null và là hàm private thì có thể không cần check.

1 Like

tùy trường hợp ta mới cần kiểm tra. ví dụ nếu bạn cần lấy thông tin của 1 record dựa trên ID thì lúc này chắc chắn bạn sẽ cần phải kiểm tra việc parameter là ID có bị null hay không vì lúc này nếu id là null thì bạn sẽ không thể lấy đc những giá trị của record đó

public doSomething(int id)
{
    if (id == null)
    {
         // return a error message 
    }
    else if (id != null)
    {
        // get detail
    }
}

Còn ở trường hợp nếu bạn muốn thêm một record, nhưng record này lại cho phép lưu vào một giá trị null thì lúc này bạn không cần phải kiểm tra parameter đó có null hay không.

1 Like

Cho mình hỏi là tại sao id là kiểu int mà mình có thể so sánh id==null phải là id==0 chứ nhỉ

Code sai đó bạn . kiểu in là kiểu nguyên thủy không bị null, và nó có giá trị khởi tạo đầu tiên luôn

1 Like

giá trị mặc định của kiểu int là 0 nhưng ở C# thì bạn có thể set giá trị cho kiểu int là null bằng cách như sau

int? a = null;
//or
Nullable<int> a = null;

Vì vậy việc kiểm tra 1 giá trị null ở đây là hợp lệ.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?