processing / processing/processing4

Detect `InvocationTargetException` when initializing global variables outside setup

Offen
#252 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

enhancement help wanted
Vorherrschende Sprache
Java
Sterne
494
Forks
183
Ø Merge
4 Std. 39 Min.
Gemergte PRs (30 T.)
3

Beschreibung

Created by: mglst

Current Behavior

Whilst coding I ran into RuntimeException: java.lang.reflect.InvocationTargetException. It only took a google search to find another user on the Processing Foundation Forum with the same issue, and a well explained fix: https://discourse.processing.org/t/just-starting-to-code-and-code-returns-java-lang-reflect-invocationtargetexception-error/14615/2.
There are many weird exception catching things that the Processing IDE already does to mitigate the most common of these Processing-specific oddities. The post that I link to has 2.1k, so I can safely say I'm neither the first nor last person to run into this. I find that the way Java errors are thrown is quite confusing. For instance, it complains about code at a specified line, but this refers to the 'java' file rather than the 'pde' file that I'm working on - this is not obvious and can be a source for more confusion still if I go looking for a bug at the wrong place in my code ("what even are .java files? and what do you mean I have to 'export' as application to get a glimpse at it?")

Steps to Reproduce

  1. see code from https://discourse.processing.org/t/just-starting-to-code-and-code-returns-java-lang-reflect-invocationtargetexception-error/14615

Your Environment

  • Processing version: 4.0a5
  • Operating System and OS version: macOS 12.0B5

Solutions

I would like the IDE to detect when making such errors and warn me that I'm likely doing something wrong by defining initialising global variables outside of setup - especially since this seems like something which is fine for ints, booleans, bytes, ... (as I understand, all primitives - although confusingly also Strings)
The fact that this is a RunTime error makes me believe that this might be a tricky suggestion to implement, but I'd hope that it would be a useful enough feature to be worth the cost

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit der verlinkten Reproduktion im Processing Forum und dem bestehenden Verhalten der IDE bei der Ausnahmebehandlung. Ermittle, wie die Initialisierung globaler Variablen außerhalb von setup InvocationTargetException erzeugt, und lege dann fest, wie die IDE dies erkennen und eine Warnung anzeigen soll, die auf den PDE-Code des Benutzers verweist. Als erledigt gilt die Aufgabe, wenn der gemeldete Fall eine klare, Processing-spezifische Diagnose erhält.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
developer-experience
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.