fix throw, trycatch