propagate exceptions so main can return !=0