enum DaError: Error {
case some(Int)
}
func testThrow(value: Int) throws {
do {
throw DaError.some(value)
} catch {
switch error {
case let DaError.some(value) where value < 4:
print("SMALL")
case let DaError.some(value) where value == 4:
print("DA GOOD")
case let DaError.some(value) where value > 4:
print("BIG")
default:
throw error
}
}
}
for val in [1, 4, 100500] {
try? testThrow(value: val)
}
ZW51bSBEYUVycm9yOiBFcnJvciB7CgljYXNlIHNvbWUoSW50KQp9CiAgICAgICAgCmZ1bmMgdGVzdFRocm93KHZhbHVlOiBJbnQpIHRocm93cyB7CglkbyB7CgkJdGhyb3cgRGFFcnJvci5zb21lKHZhbHVlKQoJfSBjYXRjaCB7CgkJc3dpdGNoIGVycm9yIHsKCQljYXNlIGxldCBEYUVycm9yLnNvbWUodmFsdWUpIHdoZXJlIHZhbHVlIDwgNDoKICAgICAgICAgICAgcHJpbnQoIlNNQUxMIikKCQljYXNlIGxldCBEYUVycm9yLnNvbWUodmFsdWUpIHdoZXJlIHZhbHVlID09IDQ6CiAgICAgICAgICAgIHByaW50KCJEQSBHT09EIikKICAgICAgICBjYXNlIGxldCBEYUVycm9yLnNvbWUodmFsdWUpIHdoZXJlIHZhbHVlID4gNDoKICAgICAgICAgICAgcHJpbnQoIkJJRyIpCgkJZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgZXJyb3IKCQl9Cgl9Cn0KICAgICAgICAKZm9yIHZhbCBpbiBbMSwgNCwgMTAwNTAwXSB7Cgl0cnk/IHRlc3RUaHJvdyh2YWx1ZTogdmFsKQp9Cg==