diff options
author | Dave Gauer <dave@ratfactor.com> | 2021-01-30 20:00:32 -0500 |
---|---|---|
committer | Dave Gauer <dave@ratfactor.com> | 2021-01-30 20:00:32 -0500 |
commit | 2de8a8c54d7090dd063bed8b6b283c2fcb452e43 (patch) | |
tree | 80c1fc20d0a171aef52d0fbd0ccaa99409b3e63f /22_errors2.zig | |
parent | 08ec029f20381580ebe76ad8bd3feca2e5cd262a (diff) | |
download | ziglings-2de8a8c54d7090dd063bed8b6b283c2fcb452e43.tar.gz ziglings-2de8a8c54d7090dd063bed8b6b283c2fcb452e43.tar.bz2 ziglings-2de8a8c54d7090dd063bed8b6b283c2fcb452e43.tar.xz ziglings-2de8a8c54d7090dd063bed8b6b283c2fcb452e43.zip |
Added ex 21-26 for error handling
Diffstat (limited to '22_errors2.zig')
-rw-r--r-- | 22_errors2.zig | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/22_errors2.zig b/22_errors2.zig new file mode 100644 index 0000000..fcfd391 --- /dev/null +++ b/22_errors2.zig @@ -0,0 +1,30 @@ +// +// A common case for errors is a situation where we're expecting to +// have a value OR something has gone wrong. Take this example: +// +// var text: Text = getText('foo.txt'); +// +// What happens if getText() can't find 'foo.txt'? How do we express +// this in Zig? +// +// Zig let's us make what's called an "error union" which is a value +// which could either be a regular value OR an error from a set: +// +// var text: MyErrorSet!Text = getText('foo.txt'); +// +// For now, let's just see if we can try making an error union! +// +const std = @import("std"); + +const MyNumberError = error{ TooSmall }; + +pub fn main() void { + var my_number: ??? = 5; + + // Looks like my_number will need to either store a number OR + // an error. Can you set the type correctly above? + my_number = MyNumberError.TooSmall; + + std.debug.print("I compiled!", .{}); +} + |