What is the easiest way to force a crash in Swift?
I would like to use only one line of code (something that I can add quickly).
I don't want to use breakpoints, I actually want the app to crash.
What is the easiest way to force a crash in Swift?
I would like to use only one line of code (something that I can add quickly).
I don't want to use breakpoints, I actually want the app to crash.
Typically you'd use
fatalError()
or
preconditionFailure()
for that.
These do exactly the same: terminating the program, therefore the code after this stamement never gets executed. All of the functions that have this behaviour are annotated with the @noreturn
attribute
You can also do something like this:
func getInt() -> Int {
fatalError()
}
The function is supposed to return an Int, but because the program never gets to that point, you don't have to return anything.
[0][1]
This tries to access second element of a one element array.
You can simply try to access an optional value that has nil value... if you already have a variable declared and it is an optional, just call it (don't forget to unwrap) and it will crash for sure
reversed ranges,
21...3
Thread 1: Fatal error: Can't form Range with upperBound < lowerBound
If you have an integer variable, you can multiply it by the integer limit. (Similar method for UInt)
import Darwin
exit(0)
The C library function
void exit(int status)
terminates the calling process immediately. Any open file descriptors belonging to the process are closed and any children of the process are inherited by process 1, init, and the process parent is sent a SIGCHLD signal.
1/0
var a = 0
override func viewDidLoad() {
super.viewDidLoad()
_ = 1/a