enum FizzBuzz: ErrorType {
case Fizz, Buzz, FizzBuzz
}
func fizzBuzzThrower(value: Int) throws -> Int {
switch (value % 3, value % 5) {
case (0,0): throw FizzBuzz.FizzBuzz
case (0,_): throw FizzBuzz.Fizz
case (_,0): throw FizzBuzz.Buzz
default: return value
}
}
for value in 1...100 {
do {
try fizzBuzzThrower(value)
print(value)
}
catch FizzBuzz.FizzBuzz {
print("FizzBuzz")
}
catch FizzBuzz.Fizz {
print("Fizz")
}