AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Verwendung von JNI und abgefangene Exeption in Java-Teil
Thema durchsuchen
Ansicht
Themen-Optionen

Verwendung von JNI und abgefangene Exeption in Java-Teil

Ein Thema von Bernhard Geyer · begonnen am 22. Nov 2006 · letzter Beitrag vom 28. Nov 2006
Antwort Antwort
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#1

Verwendung von JNI und abgefangene Exeption in Java-Teil

  Alt 22. Nov 2006, 14:56
Hallo,

ich binde über JNI eine DLL eine welche eine Javacomponente beinhaltet welche mit einem Java-Compiler in eine Exe kompiliert wurde. Diese läuft wenn Sie nicht in der IDE gestartet wurde wunderbar durch. Jedoch beim Start in der IDE kommt bei diversen Funktionen (immer die gleichen) folgende Exception welche die Delphi-IDE zum stoppen bringt.


---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Workbench.exe ist eine Exception der Klasse C0000005 aufgetreten. Meldung: 'access violation at 0x0a398915: read of address 0x00000000'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------

Ich denke mal das ist eine (abgefangene) Exception im Java-Teil. Aber wieso kommt dies zu meiner IDE durch und wie könnte ich das abschalten das ich jedesmal dort hängen bleibe.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: Verwendung von JNI und abgefangene Exeption in Java-Teil

  Alt 22. Nov 2006, 15:28
Zitat von Bernhard Geyer:
ich binde über JNI eine DLL eine welche eine Javacomponente beinhaltet welche mit einem Java-Compiler in eine Exe kompiliert wurde.
Du machst was? Wenn du eine DLL über JNI anbindest, dann hieße dass das du gerade mit Java arbeitest. Wie du mit dem Java-Compiler eine Exe erstellt hast wäre natürlich auch interessant (gcc oder welcher Compiler?). Also mir ist im Moment nicht ganz klar, was du hier wo einbindest. Wenn du eine DLL hast, die du unter Delphi einbindest, dann sehe ich nicht was das mit einer .exe oder JNI zu tun hat.

Zitat von Bernhard Geyer:
Ich denke mal das ist eine (abgefangene) Exception im Java-Teil. Aber wieso kommt dies zu meiner IDE durch und wie könnte ich das abschalten das ich jedesmal dort hängen bleibe.
Nun ja, du kannst in den Debugger Optionen einstellen, dass du generell bei Exceptions nicht halten möchtest und die BS-Exceptions kennen dann auch die Schutzverletzung C0000005, auch hier kannst du dann das Verhalten einstellen. Ansonsten kannst du natürlich auch einfach einen Wrapper verwenden, der eine Fassade für die Funktionen der DLL darstellt, die alle in einem Try Catch Block aufgerufen werden.

Gruß Der Unwissende
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Verwendung von JNI und abgefangene Exeption in Java-Teil

  Alt 22. Nov 2006, 15:48
Zitat von Der_Unwissende:
Du machst was? Wenn du eine DLL über JNI anbindest, dann hieße dass das du gerade mit Java arbeitest. Wie du mit dem Java-Compiler eine Exe erstellt hast wäre natürlich auch interessant (gcc oder welcher Compiler?). Also mir ist im Moment nicht ganz klar, was du hier wo einbindest. Wenn du eine DLL hast, die du unter Delphi einbindest, dann sehe ich nicht was das mit einer .exe oder JNI zu tun hat.
Die Exe wird mit dem Compiler von excelsior erzeugt. Die JNI-Anbindung erfolgt mit gesetzten Schalter DYNAMIC_LINKING in der JNI.pas-Datei

Zitat von Bernhard Geyer:
Nun ja, du kannst in den Debugger Optionen einstellen, dass du generell bei Exceptions nicht halten möchtest und die BS-Exceptions kennen dann auch die Schutzverletzung C0000005, auch hier kannst du dann das Verhalten einstellen. Ansonsten kannst du natürlich auch einfach einen Wrapper verwenden, der eine Fassade für die Funktionen der DLL darstellt, die alle in einem Try Catch Block aufgerufen werden.
Diese Reiterseite BS-Exceptions war's. Dort kann ich C0000005 abhacken.
Wie kann ich das aber per {$ - Angabe nur für eine Unit bzw. für Codeabschnitte abschalten. In anderen Bereichen meines Programms will ich gern in der IDE Informiert werdenn wenn sowas auftritt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Verwendung von JNI und abgefangene Exeption in Java-Teil

  Alt 28. Nov 2006, 11:00
*Push*

Nochmal anders erklärt:

Wie kann ich in der IDE einstellen das eine BS-Exception von einem bestimmten Typ in einer Unit nicht berücksichtigt wird oder eine bestimmte DLL nicht berücksichtigt wird.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

Re: Verwendung von JNI und abgefangene Exeption in Java-Teil

  Alt 28. Nov 2006, 11:18
Zitat von Bernhard Geyer:
Wie kann ich in der IDE einstellen das eine BS-Exception von einem bestimmten Typ in einer Unit nicht berücksichtigt wird oder eine bestimmte DLL nicht berücksichtigt wird.
Das kannst du IMO gar nicht. Der Debugger betrachtet immer die gesamte Anwendung.

Zitat von Bernhard Geyer:
In anderen Bereichen meines Programms will ich gern in der IDE Informiert werdenn wenn sowas auftritt.
Würde Dein Programm trotz dieser Exception weiter korrekt funktionieren? Das kann ich mir beim besten Willen nicht vorstellen. Die Exception sieht so auß, als ob das java Dingens versucht ein nicht initialisiertes Objekt zu lesen oder zu schreiben. Ob das so gesund ist?
Wenn du die Exceptionwarnung abschaltest und das Programm trotzdem funktioniert wurde die Exception wahrscheinlich schon in der DLL gehandled (sehr unfein, wie ich bemerken darf). Wenn dir in deiner eigenen Anwendung sowas unterkommt (eine unbehandelte Schutzverletzung) wird dich das OS sicher freundlich darauf hinweisen Du verpasst also nichts
Marco Warm
TUO
TheUnknownOnes.net
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Verwendung von JNI und abgefangene Exeption in Java-Teil

  Alt 28. Nov 2006, 11:54
Zitat von MarcoWarm:
Würde Dein Programm trotz dieser Exception weiter korrekt funktionieren? Das kann ich mir beim besten Willen nicht vorstellen. Die Exception sieht so auß, als ob das java Dingens versucht ein nicht initialisiertes Objekt zu lesen oder zu schreiben. Ob das so gesund ist?
Diese Exeption ist auf Java-Seite abgefangen und kommt nur durch, da hier über den "Windows Hardware Exception mechanism" (aussage des Excelsior-Herstellres) abgearbeitet wird und nunmal der Delphi-Debugger dort auch "Lauscht".

Zitat von MarcoWarm:
Wenn du die Exceptionwarnung abschaltest und das Programm trotzdem funktioniert wurde die Exception wahrscheinlich schon in der DLL gehandled (sehr unfein, wie ich bemerken darf).
Ist ein Riesen-Projekt das ich hier einbinde und kann da schlecht was am Code ändern.

Zitat von MarcoWarm:
Wenn dir in deiner eigenen Anwendung sowas unterkommt (eine unbehandelte Schutzverletzung) wird dich das OS sicher freundlich darauf hinweisen Du verpasst also nichts
Ich würde halt auch mitbekommen wenn in anderen DLL's sowas auftritt.
Aber wenns nicht geht - Unschön aber kann man dann wohl nichts machen (außer Javacode ändern):
Windows Vista - Eine neue Erfahrung in Fehlern.
  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 19:02 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