HaxeFoundation / HaxeFoundation/hxjava
Error: unreported exception must be caught or declared to be thrown
- 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