G
George2
Hello everyone,
Here is a sample from Dr. Dobb C++. In the analysis, the code is bad
below.
But I do not think the code is bad,
1. if bad_alloc is thrown in new int[], we just catch it and write
some log;
2. if there are any exception in B's constructor, we will also be in
catch block and we could also write some log.
Why it is bad code? Any comments?
(I do not agree that there is resource leak, since if we met with
bad_alloc in new int[], there is no memory allocated at all, so no
root of memory/resource leak).
http://www.ddj.com/cpp/184401297
thanks in advance,
George
Here is a sample from Dr. Dobb C++. In the analysis, the code is bad
below.
But I do not think the code is bad,
1. if bad_alloc is thrown in new int[], we just catch it and write
some log;
2. if there are any exception in B's constructor, we will also be in
catch block and we could also write some log.
Why it is bad code? Any comments?
(I do not agree that there is resource leak, since if we met with
bad_alloc in new int[], there is no memory allocated at all, so no
root of memory/resource leak).
http://www.ddj.com/cpp/184401297
Code:
C::C(int)
try
: B(new int[n]) // horrible!
{
...
}
catch(Error &e)
{
}
thanks in advance,
George