[ 
https://issues.apache.org/jira/browse/DAFFODIL-2287?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Olabusayo Kilo reassigned DAFFODIL-2287:
----------------------------------------

    Assignee: Olabusayo Kilo  (was: Steve Lawrence)

> JApi throws checked exceptions without declaring
> ------------------------------------------------
>
>                 Key: DAFFODIL-2287
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-2287
>             Project: Daffodil
>          Issue Type: Bug
>          Components: API
>    Affects Versions: 2.5.0
>            Reporter: Brandon Sloane
>            Assignee: Olabusayo Kilo
>            Priority: Minor
>             Fix For: 4.1.0
>
>
> Java assumes that all exceptions thrown by a function are either declared in 
> the function signature, or extend RuntimeException. As such, the compiler 
> will prevent users from catching a checked exception which is not declared in 
> the function signature.
> The Java API defines a parse function which does not declare any exceptions. 
> However, this function can throw a NotYetImplementedException (and possibly 
> other exceptions).
> If a Java user attempts to catch this exception, the compiler will complain 
> because NotYetImplementedException is a checked exception, so Java believes 
> it cannot be thrown.
> I suspect that this issue occurs in other places in out Java API.
> The simplest solution is to make all Scala exceptions RuntimeExceptions. 
> Since Scala does not have checked exceptions, this is no loss to the Scala 
> users, and will allow Java users to treat them as normal unchecked exceptions.
> The more correct solution is to go throw the java API and add throws 
> annotations, such as:
> {quote}@throws(classOf[NotYetImplementedException]){quote}
> In the meantime, users can work around this by catching Exception, and doing 
> an explicit instanceOf test themselves.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to