Lorsque vous utilisez imageio.imageio.read
, vous ne pouvez pas créer ImageInputStream
. J'ai une exception de catch autour de lui donc le programme survit mais je me demandais s'il y avait un moyen de mettre une déclaration if autour de lui qui vérifie pour voir si elle est fausse et ensuite essayer de le relire si c'était le cas. demandant essentiellement s'il y a un test pour les exceptions?Imageiio ne peut pas créer de flux d'entrée d'image
Répondre
try
... catch
est le test pour les exceptions. Si vous voulez vraiment traiter votre exception en tant que mécanisme de contrôle de la boucle, vous pouvez envelopper quelque chose comme ceci:
boolean success = false;
do {
try {
// do imageIO stuff
success = true; // this statement only reached if no exception
} catch (Exception e) {
System.err.println(e);
}
} while (!success);
Comme conseils de doublep, c'est une implémentation assez insensée, car il est peu probable que le problème éloignez-vous d'une itération de la boucle à la suivante, de sorte que votre programme ne fera que boucler sans cesse des messages d'erreur d'impression.
C'est exactement ce que j'étais après merci. Ceci est la lecture d'une image de caméra qui est enregistrée à partir d'une caméra dslr connectée et le problème est que je tente de le lire avant que toute l'image a été écrite afin que le délai entre les lectures permette d'écrire toute l'image avant tenté d'être relu. – pie154
Ah OK. J'avais peur que vous fassiez quelque chose comme ça :) Une implémentation plus soigneuse pourrait vérifier périodiquement la taille du fichier et différer le chargement de l'image jusqu'à ce que la taille se stabilise. L'approche de l'écrasement de vos erreurs est un peu brutale, mais si cela fonctionne pour vous, il n'y a pas besoin de le rendre plus compliqué :) –
- 1. move_uploaded_file() ne peut pas ouvrir le flux
- 2. Python: ne peut pas imprimer (flux d'exécution?)
- 3. C++ ne peut pas créer de vecteur
- 4. ne peut pas créer MD5 FingerPrint?
- 5. Python ne peut pas créer d'instances
- 6. ASP.Net ne peut pas copier créer/shadow
- 7. SVNkit ne peut pas créer SVNRepoitory
- 8. L'iPhone ne peut pas créer CGBitmapContext
- 9. Pourquoi System.IO.StreamReader ne peut-il pas lire mon flux personnalisé?
- 10. méthode peut ne pas fermer un flux en cas d'exception
- 11. Flux de flux ré-hydraté Le profil ne peut pas être une exception nulle
- 12. Visual Studio 2010 ne peut pas créer de projets
- 13. Le plugin IE ActiveX ne peut pas créer de fichier
- 14. SQL Server ne peut pas créer de vue indexée
- 15. SSIS Problème: Le composant ne peut pas être ajouté à la tâche de flux de données
- 16. Linq 2 SQL, ne peut pas créer une association
- 17. Le composant ActiveX ne peut pas créer d'objet (comReport)
- 18. ne peut pas créer plus d'une table avec websql/Chrome
- 19. Le composant ActiveX ne peut pas créer l'objet
- 20. MSBuild ne peut pas créer mon programme x86
- 21. composant ActiveX ne peut pas créer l'objet: Infopath « GetObject »
- 22. VBA ACCESS - ne peut pas créer des relations
- 23. configure: erreur: le compilateur C ne peut pas créer d'exécutables?
- 24. Spring Webflow: ne peut pas obtenir url exécution de flux à la phase d'action de portlet
- 25. ne peut pas trouver RIMIDEWin32Util.dll
- 26. Peut sérialiser, mais ne peut pas désérialiser?
- 27. ne peut pas obtenir de valeur à partir du printemps, web-flux
- 28. Erreur de mélange d'expression - La valeur ne peut pas être nulle. Nom du paramètre: flux
- 29. ne peut pas lire du flux jusqu'à la sortie de l'enfant?
- 30. Excel ne pas créer
Quel est le problème avec 'try..catch'? – doublep
Comment puis-je tester avec elle si elle a attrapé une exception? et si il a de nouveau dos à essayer de relire le fichier avec catch? – pie154
Réglez juste une variable 'boolean' (' failed', par exemple) à 'true' dans votre bloc' catch'. Et plus tard, réessayez si cette variable est 'true'. Cependant, à moins qu'il y ait quelques changements (dans le fichier image, probablement) d'ici là, réessayer donnera la même erreur. – doublep