mirror of
https://git.aramjonghu.dev/AramJonghu/ziglings.git
synced 2026-09-01 16:03:31 +02:00
Added ex 21-26 for error handling
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
//
|
||||
// One way to deal with error unions is to "catch" any error and
|
||||
// replace it with a default value.
|
||||
//
|
||||
// foo = canFail() catch 6;
|
||||
//
|
||||
// If canFail() fails, foo will equal 6.
|
||||
//
|
||||
const std = @import("std");
|
||||
|
||||
const MyNumberError = error{ TooSmall };
|
||||
|
||||
pub fn main() void {
|
||||
var a: u32 = addTwenty(44) catch 22;
|
||||
var b: u32 = addTwenty(4) ??? 22;
|
||||
|
||||
std.debug.print("a={}, b={}", .{a,b});
|
||||
}
|
||||
|
||||
// Please provide the return type from this function.
|
||||
// Hint: it'll be an error union.
|
||||
fn addTwenty(n: u32) ??? {
|
||||
if (n < 5) {
|
||||
return MyNumberError.TooSmall;
|
||||
} else {
|
||||
return n + 20;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user