why can't we throw the ISE directly instead of wrapping it?