IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Exception n'héritant pas d'Exception


Sujet :

avec Java

  1. #1
    Expert confirmé Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 619
    Points : 4 350
    Points
    4 350
    Par défaut Exception n'héritant pas d'Exception
    Bonjour, j'ai un petit projet où je charge des dll.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    try{
    	System.load(path+"libgel.dll");
    } catch (Exception e){
    	System.out.println("error loading "+e.getMessage());
    	e.printStackTrace();
    }
    try{
    	System.load(path+"libelm.dll");
    } catch (UnsatisfiedLinkError e){
    	System.out.println("error loading "+e.getMessage());
    	e.printStackTrace();
    }
    Pour la deuxième, si je met Exception et pas UnsatisfiedLinkError, l'exception n'est pas rattrapée. Pourquoi ? Je croyais que toutes les exceptions en java héritaient de Exception.
    http://www.traducteur-sms.com/ On ne sait jamais quand il va servir, donc il faut toujours le garder sous la main

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2009
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 130
    Points : 276
    Points
    276
    Par défaut
    Si je me souviens bien de mes cours de Java, il y a deux classes majeurs héritant de Throwable pouvant être lancée en cas d'erreur dans un programme :
    Exception et Error : à priori, je dirai que tu as affaire à une erreur et non à une exception, par contre je n'ai plus en tête la différence exacte entre les deux.
    MigouW

    La seule bataille perdue d'avance est celle que l'on refuse de livrer.


    Pensez au tag
    Ma réponse vous a été utile, votez plus 1 sur le message.
    Ma réponse est hors sujet, votez moins 1 sur le message.

  3. #3
    Membre habitué Avatar de yaraco
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 89
    Points : 150
    Points
    150
    Par défaut
    Error touche plus à la JVM elle même qu'au programme il me semble.

    Voilà ce que la doc en dit:
    http://download.oracle.com/javase/1....ang/Error.html

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    765
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 765
    Points : 1 036
    Points
    1 036
    Par défaut
    Error et Exception on chacune leur raison d'être héritant bien de Throwable les deux.

    Error pour les problèmes ne devant pas être catché à priori et Exception pouvant/devant l'être.
    Error étant défini comme des problèmes anormaux. Alors que Exception des problème normaux. Dans les terme même de la javadoc.

    UnsatisfiedLinkError est une error, donc n'hérite pas de Exception mais de Throwable. Ce qui est normal, car tu essais de charger le code d'une méthode déclarée native. La JVM ne sais vraiment pas quoi en faire.

  5. #5
    Expert confirmé Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 619
    Points : 4 350
    Points
    4 350
    Par défaut
    Citation Envoyé par Jimmy_ Voir le message
    Ce qui est normal, car tu essais de charger le code d'une méthode déclarée native. La JVM ne sais vraiment pas quoi en faire.
    C'est à dire ?
    J'utilise JNI, mais il faut bien qu'à un moment je charge le code de la dll non ?
    (je comprend pas très bien ta réponse)


    Merci pour les infos et pour le lien.
    http://www.traducteur-sms.com/ On ne sait jamais quand il va servir, donc il faut toujours le garder sous la main

  6. #6
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    L'API nous dit :

    Thrown if the Java Virtual Machine cannot find an appropriate native-language definition of a method declared native.
    Donc là, ta JVM ne peut pas accéder à la définiton de ta méthode native. Elle bloque complètement, c'est du même niveau que ne pas trouver une classe (NoClassDefFoundError), il n'y a à priori rien à faire pour proprement gérer le cas (contrairement à une Exception où on peut se dire qu'il y a quelque chose à faire).

Discussions similaires

  1. Exception malformed \ux.. pas de soluce
    Par **jouly** dans le forum Langage
    Réponses: 10
    Dernier message: 02/08/2007, 10h32
  2. Segfault .. pas d'exception ?
    Par Sébastien P dans le forum Dev-C++
    Réponses: 10
    Dernier message: 07/06/2007, 09h41
  3. Mon Exception ne marche pas
    Par Midou dans le forum Accès aux données
    Réponses: 7
    Dernier message: 01/12/2006, 03h46
  4. Réponses: 2
    Dernier message: 19/07/2006, 17h37
  5. Ne comprends pas une exception SQL
    Par n@n¤u dans le forum Outils
    Réponses: 3
    Dernier message: 13/07/2006, 13h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo