HaxeFoundation / HaxeFoundation/hxjava

Error: unreported exception must be caught or declared to be thrown

Offen
#11 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Haxe
Sterne
46
Forks
14
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

If we override / `@:overload` native method marked `throws ServletException, IOException` we need this meta too. Ok, using `@:throws("java.io.IOException, javax.servlet.ServletException")` under the our method declaration. Everything is fine but now we will get the same exception for a different method:

Generated java-code:

``` java
public java.lang.Object __hx_invokeField(java.lang.String field, haxe.root.Array dynargs)
{
{
boolean __temp_executeDef37 = true;
switch (field.hashCode())
{
case 95730379:
{
if (field.equals("doGet"))
{
__temp_executeDef37 = false;
this.doGet(((javax.servlet.http.HttpServletRequest) (dynargs.__get(0)) ), ((javax.servlet.http.HttpServletResponse) (dynargs.__get(1)) ));
}

break;
}

}

if (__temp_executeDef37)
{
return ((haxe.lang.Function) (this.__hx_getField(field, true, false, false)) ).__hx_invokeDynamic(dynargs);
}

}

return null;
}
```

This is because there is clearly calling a method `this.doGet` marked with the `throws`.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Beginne damit, den generierten Java-Einstiegspunkt __hx_invokeField und seinen Aufruf von doGet nachzuverfolgen, wobei der gezeigte generierte Code als Reproduktion verwendet wird. Prüfe, wie @:throws-Deklarationen für überschriebene oder überladene native Methoden dargestellt werden; fertig ist die Aufgabe, wenn der generierte Java-Code an dieser Aufrufstelle kompiliert, ohne dass eine nicht gemeldete Ausnahme vorliegt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

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

Neue Issues direkt in Ihr Postfach

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