go defer useage
go exception
go error