Kurzusok
/
Elixir
Elixir
/
Tanterv
/
Kivételek
Ki

Kivételek ebben a kurzusban: Elixir

8 feladat

A(z) Kivételek fogalomról

A kivételviselkedés határozza meg, hogyan váltódnak ki és jelennek meg a errors.

Két opcionális visszahívást tartalmaz:

  • A message/1 a hiba-structot olvasható üzenetté alakítja.
  • Az exception/1 a raise/2 második argumentumából hozza létre az üzenetet, így az üzenet módosítható.

A definiált hibák:

  • Ugyanazt a nevet kapják, mint a modul, amelyben meg vannak valósítva.
  • A struct-típus kiterjesztései.
  • Van egy :message mezőjük.
  • A raise/1 és a raise/2 függvénnyel használhatók a szándékolt hiba kiváltására

Kivétel definiálása

Ha egy hibamodulból kivételt szeretnél definiálni, használd a defexception makrót:

# Defines a minimal error, with the name `MyError`
defmodule MyError do
  defexception message: "error"
end

# Defines an error with a customized exception/1 function
defmodule MyCustomizedError do
  defexception message: "custom error"

  @impl true
  def exception(value) do
    case value do
      [] ->
        %MyCustomizedError{}

      _ ->
        %MyCustomizedError{message: "Alert: " <> value}
    end
  end
end

Kivételek használata

A definiált hibák ugyanúgy használhatók, mint egy beépített hiba, akár a raise/1, akár a raise/2 függvénnyel:

raise MyError
# => ** (MyError) error

raise MyError, "an error occurred"
# => ** (MyError) an error occurred

raise MyCustomizedError
# => ** (MyCustomizedError) "custom error"

raise MyCustomizedError, "a very bad error occurred"
# => ** (MyCustomizedError) Alert: a very bad error occurred
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg

Tanuld meg a(z) Kivételek fogalmat

A gyakorlás zárolva

Oldj fel még 2 feladatot, hogy gyakorolhasd a(z) Kivételek fogalmat