Running this program will cause it to raise an exception, print an error message and stack trace, and exit with a non-zero status.
When the first raise is executed, the program exits without reaching the rest of the code. If you’d like to see the program try to create a temp file, comment out the first raise.
Note that unlike some languages which use exceptions for handling of many errors, in Crystal it is idiomatic to use error-indicating return values (like nil or a Result type) wherever possible, reserving exceptions for truly exceptional circumstances.