exceptionalprogramming/xp-swift
[1]: https://swift.org/download/#releases
What is `Exceptional Programming`
- All functions throw exceptions (
throws) - Functions never return (
-> Never {)
Functions look like this:
func name(...) throws -> Never {
...
}Importing
import XPKitdependencies: [
.package(url: "https://github.com/ExceptionalProgramming/XP-Swift",
from: "1.0.0")
],
targets: [
.target(
name: "",
dependencies: [
"XPKit"
]),
]Exceptions
Exceptions are a class that should be thrown
Exception
- ProgramTerminated - RuntimeException - FatalException - ValueException
All do/catch blocks should rethrow any unhandled exceptions
...
} catch let error { throw error }`main()`
do {
try ...
} catch _ as ProgramTerminated {
} catch let error { throw error }Getting values
We understand that not all code is exceptional so we provide get<T>(from:) -> T which will extract the value from the thrown ValueException<T>
Addition
There is a provided add<T: Addable> function which throws the sum of all values. The Int and UInt families both conform to Addable
Package Metadata
Repository: exceptionalprogramming/xp-swift
Default branch: master
README: README.md