#6 support throw exception on runtime