fork download
  1. enum DaError: Error {
  2. case some(Int)
  3. }
  4.  
  5. func testThrow(value: Int) throws {
  6. do {
  7. throw DaError.some(value)
  8. } catch {
  9. switch error {
  10. case let DaError.some(value) where value < 4:
  11. print("SMALL")
  12. case let DaError.some(value) where value == 4:
  13. print("DA GOOD")
  14. case let DaError.some(value) where value > 4:
  15. print("BIG")
  16. default:
  17. throw error
  18. }
  19. }
  20. }
  21.  
  22. for val in [1, 4, 100500] {
  23. try? testThrow(value: val)
  24. }
  25.  
Success #stdin #stdout 0s 7636KB
stdin
Standard input is empty
stdout
SMALL
DA GOOD
BIG