for exception, use sprintf instead of concatenation opeartor