# 错误处理

> 当前状态：实现层补充记录。语言级“编译错误 vs 运行时 panic”规则，现阶段应优先参考 表达式与语句。
> 本文主要保留为编译器报错实现和错误呈现方式的补充说明。

## 编译时错误

以下错误会在编译时被检测到：

<steps level="4">

#### **语法错误** - 由语法分析器检测

#### **类型错误** - 由语义分析器检测

#### **未声明变量** - 由语义分析器检测

#### **重复声明** - 由语义分析器检测

#### **函数调用错误** - 由语义分析器检测

</steps>

## 错误报告

语义分析器会提供详细的错误信息，包括：

<steps level="4">

#### **错误位置** - 文件名、行号、列号

#### **错误类型** - 类型错误、未声明变量等

#### **错误描述** - 具体的错误信息

#### **修复建议** - 可能的修复方法

</steps>

```dj
// 错误示例
error: type mismatch
  --> src/main.dj:10:5
   |
10 |     x = "hello";
   |     ^^^^^^^^^^^
   |     expected int, found string
```
