[Rails] Wie schreibe ich eine Ausnahmebehandlung?

Was ist Ausnahmebehandlung?

Ausnahmebehandlung ist die Verarbeitung, wenn ein Fehler auftritt. Es ist praktisch, eine Ausnahmebehandlung zu schreiben, um die Fehlerursache zu identifizieren und Probleme auf der Systemseite zu vermeiden.

So schreiben Sie die Ausnahmebehandlung

Grundform des Beginns, der Rettung

Schließen Sie den Teil, der wahrscheinlich das Ziel des Fehlers ist, mit begin ein und schreiben Sie die Verarbeitung, wenn der Fehler bei der Rettung auftritt.


begin
  100 / 0
rescue
  p "Bricht nicht bei 0"
end

puts "Guten Morgen"

Schreiben Sie mit einem Liner

Es ist auch möglich, mit einem Liner zu schreiben.


sample_1 = 10 / 0 rescue 0

sample_2 = 10 / nil rescue 0

puts sample_1 #=>0
puts sample_2 #=>0

Holen Sie sich den Fehlerinhalt (e)

Sie können nach der Rettung auch ein Argument angeben, um den Fehlerinhalt in einer Variablen zu speichern.


begin
  10 / 0
rescue => e
  puts e #=> divided by 0
end

Bedingte Verzweigung für jeden Fehler

Alternativ können Sie durch Angabe einer Fehlermeldung nach der Rettung Folgendes angeben: Sie können eine bedingte Verzweigung erstellen, um zu entscheiden, welcher Fehler zu nehmen ist und was zu tun ist.


begin
  10 / 0
rescue NoMethodError
  puts "Es gibt keine Methode"
rescue ZeroDivisionError
  puts "Bricht nicht bei 0"
end

Wie man Raise benutzt

Es wird verwendet, wenn Sie explizit einen Fehler generieren und den Prozess unterbrechen möchten, wenn die Parameter nicht erwartet werden oder wenn ein nicht autorisierter Zugriff erfolgt.


begin
  raise NoMethodError #Ausnahmeklasse, die Sie auslösen möchten
rescue => e
  puts e
end

Es ist auch möglich, eine Fehlermeldung auszugeben.


begin
  raise RuntimeError, "Laufzeit Fehler"
rescue => e
  puts e
end

So verwenden Sie den Wiederholungsversuch

Wenn Sie eine Fehlermeldung erhalten, können Sie zurückkehren und sie erneut ausführen.


num = 0
begin
  puts 10 / num
rescue ZeroDivisionError => e
  puts e
  num = 1
  retry #Führen Sie den Startblock erneut aus
end

puts "Fertig"

Wie zu verwenden, stellen Sie sicher

Sie können eine Verarbeitung schreiben, die mit oder ohne Ausnahme ausgeführt wird.


begin
  puts "Keine Ausnahmen"
rescue => e
  puts e
ensure
  puts "Absolut hier laufen!"
end

Recommended Posts

[Rails] Wie schreibe ich eine Ausnahmebehandlung?
Wie schreibe ich Rails
Wie schreibe ich Rails Seed
Wie schreibe ich Rails Routing
try-catch-finally Ausnahmebehandlung Verwendung von Java
So deinstallieren Sie Rails
Wie schreibe ich Docker-Compose
Wie schreibe ich Mockito
So schreiben Sie eine Migrationsdatei
Schienen: Wie man eine Rechenaufgabe schön schreibt
[Rails] Wie schreibe ich, wenn ich eine Unterabfrage mache?
[Schienen] Wie poste ich Bilder?
Wie man guten Code schreibt
[Rails] Verwendung von Enum
[Rails] Verwendung von Enum
Wie schreibe ich einen Java-Kommentar
Wie man Schienenrouten liest
[Refactoring] So schreiben Sie Routing
Verwendung von Rails Join
Wie schreibe ich Junit 5 organisiert
So beenden Sie den Rails-Server
[Rails] Verwendung der Validierung
[Schienen] So deaktivieren Sie Turbolinks
[Rails] So verwenden Sie authenticate_user!
[Rails] So implementieren Sie Scraping
[Schienen] Wie man Samen macht
[Rails] So installieren Sie simple_calendar
[Rails] So installieren Sie reCAPTCHA
[Schienen] Verwendung von Scope
So schreiben Sie eine Datumsvergleichssuche in Rails
[Rails] Wie man Edelstein "devise" benutzt
[Schienen] Verwendung von Geräten (Hinweis)
[Rails] Zwei Möglichkeiten, form_with zu schreiben
[Rails] Verwendung von Flash-Nachrichten
[Rails] Anzeigen von Datenbankinformationen
Java # 6 studieren (Wie man Blöcke schreibt)
So schreiben Sie eine Migration vom Rails-Datums- / Uhrzeittyp zum Datumstyp
[Schienen] So verhindern Sie den Bildschirmübergang
Verwendung von Ruby on Rails
So stellen Sie Bootstrap auf Rails bereit
[Rails] So beschleunigen Sie das Docker-Compose
[Schienen] So fügen Sie neue Seiten hinzu
Ausnahmebehandlung
[Rails] So installieren Sie ImageMagick (RMajick)
So schreiben Sie eine Java-Variablendeklaration
[Rails] So installieren Sie Font Awesome
[Rails] Verwendung von Active Storage
So installieren Sie jQuery in Rails 6