Throwing an exception as a result of a normal situation is extremely bad in .net
--------------------------------------------------------------------------------

         Key: LUCENENET-8
         URL: http://issues.apache.org/jira/browse/LUCENENET-8
     Project: Lucene.Net
        Type: Task

 Environment: Windows XP, Visual Studio 2003
    Reporter: Jo Inge Arnes


At the end of the FastCharStream.Refill() method, it says:

int charsRead = input.Read(buffer, newPosition, buffer.Length - newPosition);
if (charsRead <= 0)
   throw new System.IO.IOException("read past eof");
else
   bufferLength += charsRead;

When I run Lucene in the debugger, this causes an exception to be thrown all 
the time.
To me it looks like it is thrown as a result of a normal situation, not because 
of some critical error.

Is this correct?

If this is the case, then the code is horrible. Throwing an exception in .NET 
is extremely slow, and should never be thrown as a result of a normal 
situation. I repeat: "extremely slow"

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to