| delorie.com/archives/browse.cgi | search | 
| From: | cascade AT swipnet DOT se | 
| Newsgroups: | comp.os.msdos.djgpp | 
| Subject: | Re: new throwing exception | 
| Date: | Sat, 25 Dec 1999 16:25:25 GMT | 
| Organization: | Deja.com - Before you buy. | 
| Lines: | 34 | 
| Message-ID: | <842qvj$sv$1@nnrp1.deja.com> | 
| References: | <8414d9$32$1 AT nnrp1 DOT deja DOT com> | 
| NNTP-Posting-Host: | 62.20.134.113 | 
| X-Article-Creation-Date: | Sat Dec 25 16:25:25 1999 GMT | 
| X-Http-User-Agent: | Mozilla/4.61 [en] (Win98; I) | 
| X-Http-Proxy: | 1.0 x27.deja.com:80 (Squid/1.1.22) for client 62.20.134.113 | 
| X-MyDeja-Info: | XMYDJUIDsouldoubt | 
| To: | djgpp AT delorie DOT com | 
| DJ-Gateway: | from newsgroup comp.os.msdos.djgpp | 
| Reply-To: | djgpp AT delorie DOT com | 
> new seems to throw an exception when there's some trouble allocating
> memory (correct me if I'm wrong), but I can't understand how to catch
> this exception.
>
> Mattias
I've managed to figure out that new throws an exception called bad_alloc
which is defined in <new>, but if I write a program like this:
#include <new>
#include <iostream>
void main(void)
{
   char* foo;
   try {
      foo = new char[1000000000];
      foo[999999999] = 'a';
   }
   catch (bad_alloc e) {
      cout << "Gotcha!" << endl;
   }
}
I get a printout that says "Virtual memory exceeded in 'new'".
Please, can anyone help?
Mattias
Sent via Deja.com http://www.deja.com/
Before you buy.
| webmaster | delorie software privacy | 
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |