[MOAB-dev] Discussion on return type of MOAB routines

Vijay S. Mahadevan vijay.m at gmail.com
Wed Jan 22 13:34:54 CST 2014


> It's entirely dependent on the application, same API call, same return,
> different handling, and in some cases the application is a tool inside the
> library.

If the calling function knows how to handle the error based on the
context i.e., fail with an error message or return with an error code
to be handled by upper level routines, an ErrorCode still would
suffice. Using an object to store any context explicitly is not be
necessary here IMO.

If you just want the control to augment the printed error message (in
fatal failure cases), use macros like SETERR that take a stream. Since
the program is going to exit due to the failure, each calling routine
can print its message and return appropriately without worrying about
the actual cost of storage of strings etc. For successful exits,
string remains null. The const char* version in my timing results will
be appropriate here.

Vijay

On Wed, Jan 22, 2014 at 1:26 PM, Tim Tautges (ANL) <tautges at mcs.anl.gov> wrote:
>
>
> On 01/22/2014 01:21 PM, Jed Brown wrote:
>>
>> "Tim Tautges (ANL)" <tautges at mcs.anl.gov> writes:
>>>
>>> This depends on how often it happens.  In all cases, IMO, a success
>>> condition should result in nothing more than a
>>> POD-sized object (and I should add, no virtual table).
>>
>>
>> vtables are just pointers like any other in terms of performance.
>>
>
> Sure but we still don't want that extra expense.
>
>
>>> If it's a non-success condition that is "expected" (normal condition
>>> that's handled by the calling code), IMO this shouldn't print anything
>>> by default.  If it's a non-success that's also unexpected, printing is
>>> fine (including stack trace).
>>
>>
>> I don't believe in expected failures.  I find keeping expected and error
>> conditions in-band leads to confusing control flow, but YMMV.
>>
>
> It's entirely dependent on the application, same API call, same return,
> different handling, and in some cases the application is a tool inside the
> library.
>
> - tim
>
>
> --
> ================================================================
> "You will keep in perfect peace him whose mind is
>   steadfast, because he trusts in you."               Isaiah 26:3
>
>              Tim Tautges            Argonne National Laboratory
>          (tautges at mcs.anl.gov)      (telecommuting from UW-Madison)
>  phone (gvoice): (608) 354-1459      1500 Engineering Dr.
>             fax: (608) 263-4499      Madison, WI 53706
>


More information about the moab-dev mailing list