-
Notifications
You must be signed in to change notification settings - Fork 0
Guide error handling
Version: 3.1.0 ✅ (Neu)
Status: Vollständig implementiert
Der VelinScript Compiler bietet ein umfassendes Fehlerbehandlungssystem mit intelligenten Lösungsvorschlägen für alle Fehlertypen. Dies hilft Entwicklern, Fehler schnell zu identifizieren und zu beheben.
Tritt auf, wenn die Syntax ungültig ist.
❌ Parse error: Unexpected token at line 5, column 10
💡 Did you mean: 'fn'?
🔧 Lösungsvorschlag: Function declarations use 'fn', not 'function'
Häufige Ursachen:
- Falsche Keywords (
functionstattfn) - Fehlende Klammern
- Unvollständige Generics
Tritt auf, wenn Typen nicht kompatibel sind.
❌ Type error: Type mismatch at line 12, column 15
💡 Expected: string
💡 Found: number
🔧 Nutze explizite Typ-Annotationen
Häufige Ursachen:
- Type Mismatch
- Undefined Variable
- Falsche Argument-Anzahl
Tritt auf bei der Code-Generierung für Zielsprache.
❌ Code Generation Error: IR code generation failed
📋 Target: Rust
🔧 Prüfe die IR-Validierung
Tritt auf bei Datei-Operationen.
❌ IO Error: File not found: test.velin
🔧 Prüfe den Dateipfad
Tritt auf bei Validierung.
❌ Validation Error: Field is required
📋 Feld: name
🔧 Stelle sicher, dass alle Pflichtfelder vorhanden sind
Tritt auf bei ungültiger Konfiguration.
❌ Configuration Error: Invalid JSON
🔧 Prüfe velin.config.json auf Syntax-Fehler
Der Compiler verwendet Levenshtein-Distanz um ähnliche Befehle/Variablen vorzuschlagen:
❌ Undefined variable: userNmae
💡 Did you mean: 'userName'?
Jeder Fehlertyp erhält spezifische Tipps:
// Fehler: Typ mismatch
let x: string = 42;
// ❌ Type error: Type mismatch at line 1, column 15
// 💡 Beispiel für explizite Typ-Annotation:
// let x: string = "hello";
// let y: number = 42;
Der Compiler verlinkt zu relevanten Dokumentationen:
🔧 Lösungsvorschläge:
- Siehe: docs/language/specification.md
- Siehe: docs/guides/getting-started.md
try {
let data = http.get("https://api.example.com/data");
process(data);
} catch err {
log.error("API request failed: " + err.message);
alert.send("API Error!");
}
@POST("/api/users")
fn createUser(userData: UserInput): Result<User, Error> {
// Validiere sofort
if (userData.email == "") {
return Result.Err("Email erforderlich");
}
if (userData.password.length < 12) {
return Result.Err("Passwort muss mindestens 12 Zeichen lang sein");
}
// Erstelle User
let user = User { /* ... */ };
return Result.Ok(user);
}
// ❌ Schlecht
if (count > 100) {
return Result.Err("Invalid");
}
// ✅ Gut
if (count > 100) {
return Result.Err("User count exceeds maximum of 100");
}
try {
process(data);
} catch err {
log.error("Processing failed", {
userId: user.id,
dataSize: data.length,
error: err.message,
timestamp: now(),
});
}
Der Compiler sammelt Fehlerstatistiken:
✗ Kompilierung fehlgeschlagen mit 2 Fehlern:
❌ Parse error: Unexpected token at line 5, column 10
❌ Type error: Type mismatch at line 12, column 15
⚠️ 2 Warnung(en):
⚠️ Warning: Deprecated function
⚠️ Warning: Unused variable
Fehlerstatistiken:
- Parse Errors: 1
- Type Errors: 1
- Warnings: 2
$ velin check -i main.velin
✗ Kompilierung fehlgeschlagen mit 1 Fehler:
❌ Type error: Type mismatch at line 12, column 15
📁 Datei: main.velin
📍 Position: Zeile 12, Spalte 15
💡 Did you mean: 'length'?
💡 Beispiel für explizite Typ-Annotation:
let x: number = 42;
let name: string = "John";
🔧 Lösungsvorschläge:
- Prüfe die Typen deiner Variablen
- Nutze explizite Typ-Annotationen bei Unsicherheit
- Siehe: docs/guides/tutorial-1-basics.md
💡 Tipp: Nutze 'velin check --autofix' für automatische Korrekturenvelin compile -i main.velin --export-errors errors.json{
"errors": [
{
"type": "Parse",
"message": "Unexpected token",
"line": 5,
"column": 10,
"suggestion": "Did you mean: 'fn'?"
}
],
"warnings": [],
"statistics": {
"parse_errors": 1,
"type_errors": 0,
"warnings": 0
}
}velin compile -i main.velin --export-errors-html report.htmlGeneriert einen professionellen HTML-Report mit:
- Fehler- und Warning-Kategorisierung
- Statistik-Dashboard
- Responsive Design
# Nur Parse-Fehler
velin check -i main.velin --filter parse
# Nur kritische Fehler
velin check -i main.velin --filter critical
# Alle Fehler
velin check -i main.velin --filter allDer VelinScript VS Code Extension zeigt Fehler mit Lösungsvorschlägen:
❌ Type error on line 12
💡 Quick Fix: Add type annotation
💡 Did you mean: 'userName'?
- name: VelinScript Check
run: |
velin check -i src/main.velin \
--export-errors-html report.html
if [ -s errors.json ]; then exit 1; fi- Language Specification - Sprachspezifikation
- Getting Started - Erste Schritte
- CLI-Reference - CLI-Befehle
Erstellt: 2026-02-02
Version: 3.1.0
- Compiler Architecture
- Pass-Verlauf
- Type Inference
- Code Ordering
- IR Representation
- Borrow Checker
- Code Generation
- Multi-Target Compilation
- Module Resolution
- Framework Integration
- Parallelization
- AI Compiler Passes
- Prompt Optimizer
- System Generation
- Basics
- APIs
- Security
- Database
- Validation
- Authentication
- ML/LLM
- Intelligence Features
- Type Inference
- ML Training
- Pattern Matching
- Closures
- Collections
- HTTP Client
- String Interpolation
- Debugger
- Vektor-Datenbanken
- CLI Reference
- API Keys Setup
- Advanced
- Backend
- Security Best Practices
- AI/ML
- Auto Imports
- Plugin Development