AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hänger bei Zugriffsverletzung

Ein Thema von MStoll · begonnen am 1. Mär 2014 · letzter Beitrag vom 1. Mär 2014
Antwort Antwort
MStoll

Registriert seit: 15. Nov 2005
131 Beiträge
 
Turbo Delphi für Win32
 
#1

Hänger bei Zugriffsverletzung

  Alt 1. Mär 2014, 16:35
Hi,

mir ist ein entscheidender Unterschied zwischen dem Delphi und dem FreePascal-Compiler aufgefallen:
- wenn eine Exception gefangen wird, die durch eine Zugriffsverletzung entsteht, so hängt ein GUI-Programm, das mit Lazarus/FreePascal erstellt wurde, ein paar Sekunden, während ein mit Delphi compiliertes gleiches Programm einfach direkt weiterläuft.

Weiß jemand, warum das so ist und ob man dagegen irgendetwas tun kann?

Generell scheint mir ja FreePascal bei Zugriffsverletzungen weniger kulant als Delphi, was man beispielsweise auch merkt, wenn man Formulare in einer DLL erzeugt. Delphi: keine Probleme, Lazarus: Totalabsturz.

Viele Grüße
Michael
"Man soll nie mehr essen als mit Gewalt reingeht!" (n.n.)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#2

AW: Hänger bei Zugriffsverletzung

  Alt 1. Mär 2014, 16:58
Zitat:
ob man dagegen irgendetwas tun kann?
Einfach keine Exception auftreten lassen?


Eine Ausnahme sollte nicht zur Regel werden und schon stört es nicht mehr.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
MStoll

Registriert seit: 15. Nov 2005
131 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: Hänger bei Zugriffsverletzung

  Alt 1. Mär 2014, 17:09
Ja, wenn das so einfach wäre, würde ich das so tun...

Aber wenn man ein hochgradig nebenläufiges Programm hat, das mal eben 10 Stunden am Stück Daten sammeln und verwerten soll, die aus verschiedenen Quellen kommen und an verschiedene Stellen verteilt werden sollen, dann würde ich gerne auf solche Ausnahmen (und die Regel ist das nicht, sondern wirklich die Ausnahme...) vorbereitet sein. Denn Hänger oder Totalabstürze können dazu führen, dass wichtige Daten nicht rechtzeitig abgearbeitet werden können, nur weil evtl. mal in einem weniger wichtigen Zusatzmodul des Programms, das vielleicht nur für eine Visualisierung der Daten zuständig ist, eine Zugriffsverletzung passiert.

Denn es ist nunmal nicht ganz leicht, ein nebenläufiges Programm zu entwickeln, dass gleichzeitig effizient, flexibel und pannenfrei läuft. Da wäre auf dem Weg zum echt fehlerfreien Programm - was ja das Ziel der Entwicklung ist - ein Plan B, nämlich das Fangen solcher Exceptions im Hintergrund ohne Behinderung des Workflows nicht schlecht. Mit Delphi geht's ja auch.
"Man soll nie mehr essen als mit Gewalt reingeht!" (n.n.)
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#4

AW: Hänger bei Zugriffsverletzung

  Alt 1. Mär 2014, 19:45
Aber wenn man ein hochgradig nebenläufiges Programm hat, das mal eben 10 Stunden am Stück Daten sammeln und verwerten soll, die aus verschiedenen Quellen kommen und an verschiedene Stellen verteilt werden sollen, dann würde ich gerne auf solche Ausnahmen (und die Regel ist das nicht, sondern wirklich die Ausnahme...) vorbereitet sein. Denn Hänger oder Totalabstürze können dazu führen, dass wichtige Daten nicht rechtzeitig abgearbeitet werden können, nur weil evtl. mal in einem weniger wichtigen Zusatzmodul des Programms, das vielleicht nur für eine Visualisierung der Daten zuständig ist, eine Zugriffsverletzung passiert.
Ohne jetzt dein konkretes Problem wirklich lösen zu können:
Wenn die Aufgaben des Programms so wichtig ist, darf es keine fehleranfälligen oder schlecht getesteten Programmteile enthalten. Also muss alles, was nicht Missions-kritisch ist, in einen anderen Prozess.

Eventuell könnte es auch helfen, für die Verteilung der Daten auf fertige Message-Broker zu setzten. Da haben sich dann schon andere Leute Gedanken über Sachen wie Ausfallsicherheit und eventuelle Persistenz von Nachrichten gemacht.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz