Sprawdź, czy null Boolean ma wartość true, wyniki wyjątków

Mam następujący kod:

Boolean bool = null;

try 
{
    if (bool)
    {
        //DoSomething
    }                   
} 
catch (Exception e) 
{
    System.out.println(e.getMessage());             
}

Dlaczego sprawdzanie zmiennej boolowskiej „bool” powoduje wyjątek? Czy nie powinien po prostu przeskoczyć przez instrukcję if, gdy „widzi”, że to nieprawda?Gdy usuwam instrukcję if lub sprawdzam, czy NIE jest ona null, wyjątek zniknie.