favour exceptions over errors