|
| 1 | +--- |
| 2 | +title: BioJava:CambridgeDiscussion |
| 3 | +--- |
| 4 | + |
| 5 | +Background |
| 6 | +---------- |
| 7 | + |
| 8 | +In Febuary 2007 several current and former BioJava core developers met |
| 9 | +at the EBI in Cambridge, UK to discuss future directions in BioJava. The |
| 10 | +following is a summary of what was discussed. |
| 11 | + |
| 12 | +BioJava1.5 |
| 13 | +---------- |
| 14 | + |
| 15 | +It was generally felt we should release as soon as possible! Although it |
| 16 | +is not bug free, completely documented/ tested etc it is probably still |
| 17 | +better than previous releases. Because we are encouraging people to use |
| 18 | +1.5-beta2 instead of 1.4 it is pretty much the official version. |
| 19 | + |
| 20 | +Exception Handling |
| 21 | +------------------ |
| 22 | + |
| 23 | +It was generally felt that where possible exceptions that are unlikely |
| 24 | +and that would only happen in situations that the developer might expect |
| 25 | +should be runtime exceptions and not checked exceptions. More generally, |
| 26 | +problems caused by bad programming should be runtime exceptions. |
| 27 | +Problems caused by the user doing something odd should be checked |
| 28 | +exceptions. |
| 29 | + |
| 30 | +An example is the ChangeVetoExceptions which will only occur if the |
| 31 | +developer has set up change listeners. This has been changed to a |
| 32 | +runtime (unchecked) exception in BJ1.5-beta2. |
| 33 | + |
| 34 | +Things like IllegalSymbolException are probably errors caused by the |
| 35 | +user. For example the user provides a Protein fasta file when the |
| 36 | +program expects DNA. A well constructed program could respond in a |
| 37 | +better way than just crashing with a stack trace. For example it could |
| 38 | +prompt for a different file. |
| 39 | + |
| 40 | +Checked exceptions create a development and learning burden and we |
| 41 | +should reduce them where appropriate. |
| 42 | + |
| 43 | +Suggestions of other exceptions that should be unchecked are welcome. It |
| 44 | +is simple to convert a checked to unchecked exception it is not possible |
| 45 | +to go the other way so we should properly discuss each example. |
0 commit comments