Я пытаюсь сделать «базовую» ошибку, которая делает все, что я хочу сделать для всех моих ошибок, а затем расширяю ее для каждой ошибки, чтобы иметь разные ErrorType
с.Я знаю, что на самом деле не могу расширить enum
, поэтому я понятия не имею, как я смогу добиться чего-то подобного.Ниже мой текущий код.
class BaseError: Error {
enum ErrorType {}
typealias Context = [String:Any]?;
private let type: ErrorType
private let context: Context;
private let line: Int;
private let function: String;
private let file: String;
init(
type: ErrorType,
context: Context,
line: Int = #line,
file: String = #file,
function: String = #function
) {
self.type = type;
self.context = context;
self.line = line;
self.function = function;
self.file = file;
}
}
class MyError: BaseError {
enum ErrorType {
case noApp
case noLabel
}
}
Я бы хотел сделать что-то вроде throw A11yError(type: .noApp)
.Это сейчас говорит мне Type 'BaseError.ErrorType' has no member 'noApp'
.