__try/__except - jak złapać EXCEPTION_ACCESS_VIOLATION

http://msdn.microsoft.com/en-us/library/swezty51(VS.80).aspx

  1. int filter(unsigned int code, struct _EXCEPTION_POINTERS *ep)
  2. {
  3. if (code == EXCEPTION_ACCESS_VIOLATION)
  4. {
  5. return EXCEPTION_EXECUTE_HANDLER;
  6. }
  7. else
  8. {
  9. return EXCEPTION_CONTINUE_SEARCH;
  10. };
  11. }
  12.  
  13. void test()
  14. {
  15. __try
  16. {
  17. *((char *)(NULL)) = 2;
  18. }
  19. __except(filter(GetExceptionCode(), GetExceptionInformation()))
  20. {
  21. cout << "wicked :)";
  22. }
  23. }
Albo prościej: __except(

Albo prościej:

  1. __except( GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ) { ...

Kuling, śr., 2009-04-01 20:45

Dodaj nową odpowiedź

Zawartość pola nie będzie udostępniana publicznie.
  • Dozwolone znaczniki HTML: <a> <p> <span> <div> <h1> <h2> <h3> <h4> <h5> <h6> <img> <map> <area> <hr> <br> <br /> <ul> <ol> <li> <dl> <dt> <dd> <table> <tr> <td> <em> <b> <u> <i> <strong> <font> <del> <ins> <sub> <sup> <quote> <blockquote> <pre> <address> <code> <cite> <embed> <object> <param> <strike> <caption>
  • Możesz użyć w tekście znaczników BBCode. Adresy zostaną automatycznie zamienione na linki.
  • Możesz włączyć podświetlanie składni poprzez umieszczenie w tekście następujących znaczników: <code>, <blockcode>. The supported tag styles are: <foo>, [foo].
  • Tekstowe emotikony zostaną zamienione na ikony.

Więcej informacji na temat formatowania