Ik ben vrij nieuw met Java en echt object georienteerd programmeren, al gaat het nu redelijk goed. Ik zit een beetje in de knoop met try/catch en runtime geinvokete objecten en exceptions die daaruit voortkomen.
We zijn bezig met een rekenmachine, aan de hand van een soort van eigen soort String bouwen we een post-fix list op die we omzetten tot een Formule boom, daarin staan waardes, variabelen en operators. Om deze boom op te bouwen invoken we tijdens runtime objecten die Formula extenden. Tijdens dit proces kunnen er meerdere dingen verkeerd gaan, zoals dat er te weinig parameters zijn voor een bepaalde operator. Hiervoor hebben we een aantal exceptions gemaakt. Als er iets mis gaat tijdens het constructen van zo'n object geeft hij altijd een InvokeTargetException in plaats van de echte exception die we doorgeven. Hieruit kun je wel de originele exception weer terug halen met getCause() maar nu zie ik door de bomen het bos niet meer. Hier in pseudocode hoe we het ongeveer willen hebben:
Formula maakt tijdens het opbouwen van de boom dus nieuwe (ge-extende) Formulas met soms andere Formulas als parameters (bij een operator). Wat moeten we waar gooien, wat moet wat kunnen gooien en waarom geeft Java niet gewoon onze eigen Exceptions als we die gooien. Ik zie echt door de bomen het bos niet meer en ik kan geen duidelijke voorbeelden online vinden. Heel erg bedankt!
Edit: Ik kan de titel niet meer veranderen naar [JAVA] Invocation Exception handling
We zijn bezig met een rekenmachine, aan de hand van een soort van eigen soort String bouwen we een post-fix list op die we omzetten tot een Formule boom, daarin staan waardes, variabelen en operators. Om deze boom op te bouwen invoken we tijdens runtime objecten die Formula extenden. Tijdens dit proces kunnen er meerdere dingen verkeerd gaan, zoals dat er te weinig parameters zijn voor een bepaalde operator. Hiervoor hebben we een aantal exceptions gemaakt. Als er iets mis gaat tijdens het constructen van zo'n object geeft hij altijd een InvokeTargetException in plaats van de echte exception die we doorgeven. Hieruit kun je wel de originele exception weer terug halen met getCause() maar nu zie ik door de bomen het bos niet meer. Hier in pseudocode hoe we het ongeveer willen hebben:
code:
1
2
3
4
5
6
7
| try { Formula rekenFormula = Formula.parseFormula(tokenList); } catch ( ParseException e ) { ParseFoutje(); } catch ( ExecuteException e ) { ExecuteFoutje(); } |
Formula maakt tijdens het opbouwen van de boom dus nieuwe (ge-extende) Formulas met soms andere Formulas als parameters (bij een operator). Wat moeten we waar gooien, wat moet wat kunnen gooien en waarom geeft Java niet gewoon onze eigen Exceptions als we die gooien. Ik zie echt door de bomen het bos niet meer en ik kan geen duidelijke voorbeelden online vinden. Heel erg bedankt!
Edit: Ik kan de titel niet meer veranderen naar [JAVA] Invocation Exception handling