factorial with exception handling add