2009-09-13 15 views
0

J'ai un problème pour intercepter une exception. J'essaie de repousser une exception et j'obtiens un message:'Aucun code source n'est disponible pour l'emplacement actuel.' lors du lancement d'une exception dans C++ Visual Studio

Aucun code source n'est disponible pour l'emplacement actuel.

Le code est très simple:

#include <exception> 
using namespace std; 

try { 
    throw exception("Asas"); 
} 
catch (const exception& e) { 
    cout<< "Error msg" << e.what() << endl; 
    throw; //This the error message I get from the IDE. 
} 

Il répète aussi si je tente de lancer un message de chaîne et d'essayer de réémettre il.

+1

Dans quel contexte recevez-vous le message de l'EDI? Lors du débogage? –

+0

Et quel était votre comportement attendu? –

+0

Que la fonction qui a appelé cette fonction intercepte l'exception. –

Répondre

1

Votre question est si trompeuse, il est très difficile de vous donner quoi que ce soit mais plus de questions. Vous écrivez que vous obtenez ce message lorsque vous essayez de le relancer, mais vous ne savez pas très bien ce que vous voulez dire: est-ce une erreur de compilation, une erreur d'exécution ou quelque chose que vous obtenez pendant le débogage? Si ce dernier (que je suppose), pourquoi déboguez-vous? L'exception levée n'est-elle pas attrapée? Si oui, quel est le code qui tente de l'attraper?

Je vous suggère de changer votre question pour montrer une petite, mais morceau complet de code (idéalement autonome et compilable) plus une description exacte de ce qui se passe et A)B) ce que vous pensez devrait arriver à la place. En attendant, tout ce que je peux dire, c'est que le message d'erreur que vous citez peut signifier que vous exécutez/déboguez quelque chose qui n'est pas compilé à partir du code que vous regardez. Mais c'est à peu près aussi vague que votre question ...

+0

Je suis désolé de la tromperie. Je l'ai compris lors du débogage. Oui, vous avez raison, j'ai essayé de l'exécuter sans débogage dans c'était correct. Pourquoi la différence? et comment puis-je déboguer ma demande? –

+0

@Roman: Je n'ai toujours aucune idée de ce que vous faites exactement, de ce qui se passe et de ce que vous attendez à la place. Allez et éditez votre question selon mes suggestions. Peut-être que quelqu'un comprendra ce qui se passe. En l'état, je ne suis même pas sûr de ce dont vous parlez. – sbi

2

Il semble que vous soyez dans la phase de relance, et vous n'avez probablement pas de code source pour la partie du code dans laquelle vous êtes intervenu. Vous obtiendrez ces messages lorsque l'EDI ne peut pas trouver le code source de la ligne de code en cours.

+0

mais c'est la même application. Ce n'est pas une DLL ou n'importe quel type de bibliothèque. –

+0

@leiz, le problème est dans le lancer; –

+0

@Ahmed, c'est ce que j'ai dit - il marche dans le rethrow ou quelque chose – leiz

Questions connexes