Existe-t-il un équivalent Java de InvalidOperationException de C #?

Je convertis du code C # en Java et je dois inclure une exception similaire à InvalidOperationException de C #. Est-ce qu’une telle chose existe? Y a-t-il également une liste de types d’exceptions équivalentes dans les deux langues? Merci.


Je pense que dans mon cas particulier, IllegalStateException est le plus approprié. Merci pour toutes les réponses.

Probablement IllegalStateException .

D’après ce que j’ai lu sur InvalidOperationException: “L’exception déclenchée lorsqu’un appel de méthode n’est pas valide pour l’état actuel de l’object.”

Pour IllegalStateException : “Signale qu’une méthode a été appelée à une heure illégale ou inappropriée. En d’autres termes, l’environnement Java ou l’application Java n’est pas dans un état approprié pour l’opération demandée.”

Selon la manière dont vous utilisez InvalidOperationException , je pourrais également voir IllegalArgumentException et IllegalArgumentException comme vous le souhaitez. Le premier implique que, en général, la méthode est correcte pour appeler, elle a juste été dépassée cette fois-ci; la seconde implique que la méthode n’est jamais appropriée pour appeler cette instance (contrairement à IllegalStateException , ce qui implique qu’il peut être approprié d’appeler parfois la méthode sujet, mais pas pour le moment).


Je ne suis pas au courant d’une traduction générale en Java des exceptions.

Petar m’a montré cet exemple de code (à partir de msdn)

 void WriteLog() { if (!this.logFile.CanWrite) { throw new System.InvalidOperationException("Logfile cannot be read-only"); } // Else write data to the log and return. } 

Donc, dans ce contexte, vous pouvez utiliser une exception IllegalStateException, même si cela dit:

Lancé lorsqu’une action est tentée à un moment où la machine virtuelle n’est pas dans le bon état.

Et un état de VM illégal n’est définitivement pas le problème dans l’exemple de référence ci-dessus. Ici, le problème est que l’object n’est pas valide, car il fait référence à un fichier journal en lecture seule.

Mon propre conseil: il suffit de définir une exception personnalisée comme

 package com.pany.project; public class InvalidOperationException extends RuntimeException { // add constructors with call to super as needed } 

Pour moi, c’est beaucoup plus facile que d’essayer de trouver la meilleure exception adaptée au paquetage java.lang .