Programmering
  1. Teori
  2. Logik
  3. Fejlhåndtering
  • Eksamen
  • Projektarbejde
  • Synopsis
  • Cheatsheets
    • Python cheatsheet
    • Rust cheatsheet
    • Kodningsplatforme
  • Opsætning
    • Git
    • Python
    • Rust
    • VScode
  • Teori
    • Arbejdsproces
      • Abstraktion
      • Fejlfinding
      • Generalisering
      • Git
      • Kommentarer
      • Moduler
      • Pakker
    • Data
      • Datastrukturer
      • Datatyper
      • Ejerskab og referencer
      • Enum
      • Hukommelse og pointers
      • Indkapsling
      • Polymorfi
      • Struct
    • Diagrammer
      • Brugerhistorier
      • Klassediagrammer
      • Rutediagrammer
      • Tegneprogrammer
    • Logik
      • Anonyme Funktioner
      • Fejlhåndtering
      • Grådig algoritme
      • Metaprogrammering
      • Samtidig programmering
  • Studieområdet
    • Forslag til emner
    • Empiri
    • Metoder i Programmering

På denne side

  • Stoppe program
  • Fortsætte program
    • Rust
    • Python
  1. Teori
  2. Logik
  3. Fejlhåndtering

Fejlhåndtering

Teori

Udgivet

30. marts 2026

Når der opstår fejl i et program kan man vælge at stoppe programmet eller gendanne lovlig tilstand.

Python og Rust har mange måder at håndtere fejl på, se hhv. [1] og [2].

Stoppe program

En nem måde at stoppe programmet ved fejl er vha. assert (se afsnit under fejlfinding).

I Rust kan man også bruge panic!.

Fortsætte program

I nogle tilfælde vil man gerne fortsætte programmet efter en fejl. Det kan fx være hvis brugeren skal vælge et tal og man gerne vil kunne give en ny mulighed efter forkert input.

Rust

I Rust kan fejl håndteres vha. Result.

Result<T, E> indeholder enten Ok(T) med et element af typen T eller Err(E) med en fejl af typen E.

NoteEksempel: Rust Result
fn divide(a: f64, b: f64) -> Result<f64, String> {
    if b == 0.0 {
        Err(String::from("Nævneren må ikke være nul"))
    } else {
        Ok(a / b)
    }
}

fn main() {
    let result = divide(10.0, 2.0);
    let result2 = divide(10.0, 0.0);
    
    match result {
        Ok(quotient) => println!("Resultat: {}", quotient),
        Err(e) => println!("Match fejl: {}", e),
    }

    println!("{}",result2.expect("Expect fejl: "));
}

Python

I Python kan fejl håndteres vha. Exceptions og try-except mønstret.

NoteEksempel: Python Exceptions

raise kan bruges til at få en Exception til at opstå. Hvis en Exception ikke fanges ved en try-sætning så vil programmet stoppe.

Udover de indbyggede Exceptions kan man også definere sine egne.

Tilbage til toppen

Referencer

[1]
G. Van Rossum og F. L. Drake, “8. Errors and Exceptions”. https://docs.python.org/3/tutorial/errors.html
[2]
S. Klabnik og C. Nichols, “9. Error Handling”, i The Rust Programming Language, No Starch Press. Tilgængelig hos: https://doc.rust-lang.org/book/ch09-00-error-handling.html

ZBC Slagelse HTX

Senest redigeret d. 30. marts 2026

JACS