---
title: 杂项
description: 各种尚未有专门页面但仍然有用且有趣的示例。
---

各种尚未有专门页面但仍然有用且有趣的示例。

## 如何抛出错误

当我们不知道要多久执行一次特定操作时，合约中的 `throw(){:tact}` 函数就非常有用。

它允许有意的异常或错误处理，从而导致当前事务的终止，并恢复该事务中的任何状态更改。

```tact
let number: Int = 198;

// the error will be triggered anyway
try { throw(36); } catch (exitCode) {}

// the error will be triggered only if the number is greater than 50
try { throwIf(35, number > 50); } catch (exitCode) {}

// the error will be triggered only if the number is NOT EQUAL to 198
try { throwUnless(39, number == 198); } catch (exitCode) {}
```

:::note[Useful links:]

  [核心库中的 `throw(){:tact}`](/zh-cn/ref/core-debug#throw)/
  [Tact-By-Example中的错误](https://tact-by-example.org/03-errors)

:::

:::tip[Hey there!]

  没有找到您最喜欢的利基工作范例？ 您有很酷的实施方案吗？ [欢迎投稿！](https://github.com/tact-lang/tact/issues)

:::
