Struct 在Zig中实现基本的经典try-catch

Struct 在Zig中实现基本的经典try-catch,struct,segmentation-fault,zig,Struct,Segmentation Fault,Zig,如何在Zig中实现经典的try-catch错误处理 比如说。如何解决此错误并仅在未发生错误时执行append var stmt=self.statement()捕获{ self.synchronize();//仅在出现错误时执行此操作。 }; self.top_level.statements.append(stmt);//帮忙?只有在没有错误时才应执行此操作 // ... fn synchronize()无效{ //…实施 } fn语句()有点错误!空虚{ //…实施 } 如果可能,请显示上

如何在Zig中实现经典的
try-catch
错误处理

比如说。如何解决此错误并仅在未发生错误时执行
append

var stmt=self.statement()捕获{
self.synchronize();//仅在出现错误时执行此操作。
};
self.top_level.statements.append(stmt);//帮忙?只有在没有错误时才应执行此操作
// ...
fn synchronize()无效{
//…实施
}
fn语句()有点错误!空虚{
//…实施
}

如果可能,请显示上述代码的修改版本。

请尝试使用If-else,如下所示:

if (self.statement()) |stmt| {
   // HELP? This should only be executed when no error
   self.top_level.statements.append(stmt)
} else |error| {
  // Only execute this when there is an error.
  self.synchronize()
}

您可以了解有关if的更多信息,请尝试if-else,如下所示:

if (self.statement()) |stmt| {
   // HELP? This should only be executed when no error
   self.top_level.statements.append(stmt)
} else |error| {
  // Only execute this when there is an error.
  self.synchronize()
}
你可以了解更多关于