we don't use `@throws`