# Fel

## Syntaxfel

Ett syntaxfel är ett fel i själva grammatiken i koden; ett ganska lättfångat fel där man helt enkelt skrivit något ogiltigt. Syntaxfel signaleras i Visual Studio Code genom att strykas under med röda vågiga streck, s.k, "sqiggley lines". Man kan också få fram en lista med alla syntaxfel genom att gå till Problems-panelen (View → Problems).

## Runtime-fel (exceptions)

Ett runtime-fel är ett fel som uppstår när programmet körs. Koden som orsakar felet är syntaxmässigt korrekt, men den operation som koden beskriver går inte att utföra. Det kan till exempel vara att man försöker komma åt en position i en array som inte finns.

```csharp
int[] numbers = {3, 4, 12, 66};
Console.WriteLine(numbers[8]); // Det finns ingen åttonde int i arrayen
```

När ett runtime-fel uppstår så skapas ett Exception. Detta kan fångas upp av en [try-catch](/grundlaggande/try-catch.md).

## Logiska fel

Logiska fel är de svåraste att hitta – de hittas inte av Visual Studio (inga röda sqiggley lines), de orsakar inga felmeddelanden. De är helt enkelt resultatet av ett feltänk hos programmeraren – som leder till oönskat beteende.

```csharp
// Eftersom || används istället för && så räcker det med att ha rätt
//  användarnamn ELLER rätt lösenord.

if (username == "micke || password == "12345")
{
  loggedIn = true;
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://csharp.progdocs.se/grundlaggande/fel.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
