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