why the fuck would you even use exceptions for control flow