throw more exceptions instead of using LogUtil