swift - 如何在swift中显示带有多个错误的错误消息?
问题描述
我使用枚举来创建多个错误。但我不知道如何处理这些错误。现在我使用is
,as
来处理它。我要找到更好的方法来做到这一点。例如:
enum URLError: Error {
case notConnectedToInternet
case timeout
...
}
enum HTTPError: Error {
case unauthorized
...
}
extension UIViewController {
func showErrorMessage(_ error: Error) {
if let error = error as? URLError {
// handle the URLError
}
if let error = error as? HTTPError {
// handle the HTTPError
}
}
}
解决方案
我认为最好使用catch
子句检查错误的类型,而不是像showErrorMessage
.
当您发现错误时,请执行以下操作:
do {
...
} catch let error as URLError {
showURLErrorMessage(error)
} catch let error as HTTPError {
showHTTPErrorMessage(error)
} catch {
showGenericErrorMessage(error)
}
其中每个showXXXErrorMessage
将接受相应类型的参数:
func showURLErrorMessage(_ error: URLError) {
...
}
func showHTTPErrorMessage(_ error: HTTPError) {
...
}
func showGenericErrorMessage(_ error: Error) {
...
}
推荐阅读
- ios - 将 ionic 4 项目从 PC 移动到 Mac 时,您需要做一些特别的事情吗?
- apache-kafka - 如何让 Kafka Streams 每 1 小时窗口每个键发送一条记录?
- sorting - 我如何在 solrJ 中使用查询语法?
- sql - 检查本地/Azure 服务器和 SQL 数据库实例之间的连接?
- react-native - redux-thunk:动作没有调度
- javascript - GLTF 3D 模型在应该动画的时候没有动画
- html - Eloquent 显示具有特定对象信息的模态
- java - 我无法在 netbeans 和 apache 服务器中使用 java 连接到远程数据库
- java - 为什么 c 的向上转换是多余的?
- spring - 模拟 Spring Repository 时,Mockito 返回 null