Skip to content

ExceptionalProgramming/XP-Swift

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XPKit

THE framework for doing Exceptional Programming in Swift

What is Exceptional Programming

  • All functions throw exceptions (throws)
  • Functions never return (-> Never {)

Functions look like this:

func name(...) throws -> Never {
	...
}

Importing

import XPKit
dependencies: [
	.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

About

XP Library for Swift

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages