Προς το περιεχόμενο

Debugger Exception Notification C++


stanlee

Προτεινόμενες αναρτήσεις

Δημοσ.

Γειά σας,

μπορεί να με βοηθήσει κανείς με αυτό το Exception;;; Το google-αρα και βρήκα αυτό. Δεν καταλαβαίνω όμως πώς μπορώ να το διορθώσω.

 

πλιζ χελπ!!!

 

[Debugger Exception Notification] Project myProject.exe raised exception class _STL::out_of_range with message 'Exception Object Address: 0x704C9A'

When you see this, check out the line of code pointed to. When you see the code below (from the header file _vector.h) you know you've been reading/writing out of the range of your std::vector.

 

__stl_throw_out_of_range("vector");

 

 

 

P.S. Be happy that this error occurred! You used the member function at() instead of the index operator []. Would you've used the latter, this would be a time bomb error.

Δημοσ.

Αυτό το λάθος σημαίνει πως δοκίμασες να διαβάσεις περισσότερα στοιχεία από όσα έχουν δηλωθεί στο vector σου, όταν συμβαίνει αυτό η ρουτίνα vector.at δημιουργεί ένα out_of_range exception.

 

Ο παρακάτω κώδικας (γραμμένος σε CodeGear Turbo C++ 2006) δεσμεύει ένα vector με 5 int και παράγει αυτό το σφάλμα, δοκιμάζοντας να διαβάσει το 6 στοιχείο του vector μας (μετράμε ως n-1).

 

Μόλις αυτό συμβεί, το out_of_range λάθος «πιάνεται» με την βοήθεια της try{ }catch{ } και παρουσιάζεται στο stdout του χρήστη.

 

>
//-Vector "out of range"-exception example (directx)-------------------------
#include <iostream>
#include <vector>
#ifdef __BORLANDC__
#pragma hdrstop
#endif

//---------------------------------------------------------------------------

#ifdef __BORLANDC__
#pragma argsused
#endif	
int main(int argc, char* argv[])
{
try
 {
	std::vector<int> vecData = std::vector<int>(5);
	std::cout<<vecData.at(5)<<std::endl;
 }
catch(std::out_of_range)
 {
	std::cout<<"We just raised an \"Out_of_range\" exception!"<<std::endl;
 }

return 0;
}
//---------------------------------------------------------------------------

Δημοσ.
Αυτό το λάθος σημαίνει πως δοκίμασες να διαβάσεις περισσότερα στοιχεία από όσα έχουν δηλωθεί στο vector σου, όταν συμβαίνει αυτό η ρουτίνα vector.at δημιουργεί ένα out_of_range exception.

 

Ο παρακάτω κώδικας (γραμμένος σε CodeGear Turbo C++ 2006) δεσμεύει ένα vector με 5 int και παράγει αυτό το σφάλμα, δοκιμάζοντας να διαβάσει το έκτο (ανύπαρκτο) στοιχείο του vector μας.

 

Μόλις αυτό συμβεί, το out_of_range λάθος «πιάνεται» με την βοήθεια της try{ }catch{ } και παρουσιάζεται στο stdout του χρήστη.

 

>
//-Vector "out of range"-exception example (directx)-------------------------
#include <iostream>
#include <vector>
#ifdef __BORLANDC__
#pragma hdrstop
#endif

//---------------------------------------------------------------------------

#ifdef __BORLANDC__
#pragma argsused
#endif	
int main(int argc, char* argv[])
{
try
 {
	std::vector<int> vecData = std::vector<int>(5);
	std::cout<<vecData.at(5)<<std::endl;
 }
catch(std::out_of_range)
 {
	std::cout<<"We just raised an \"Out_of_range\" exception!"<<std::endl;
 }

return 0;
}
//---------------------------------------------------------------------------

 

Συμβαινει το ίδιο και μ'αυτό

__stl_throw_out_of_range("basic string");;;;

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...