#! improve throw error