update
version 3.0 add try catch code