use exceptionalfunction