[ 
https://issues.apache.org/jira/browse/HBASE-6639?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13440055#comment-13440055
 ] 

Hiroshi Ikeda commented on HBASE-6639:
--------------------------------------

Constructor.newInstance() avoids this problem.
Class.newInstance() is an exceptional method, and I think in almost all cases 
we must use try-catch to catch Exception, for example:

{code}
try {
  instance = clazz.newInstance();
} catch(Exception e) {
  ...
}
{code}

See 
http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html#newInstance%28%29

For example you can fire any checked exceptions by the following code:
{code}
public class A {
    public static void fire(Exception e) {
        B.e = e;
        try { B.class.newInstance(); }
        catch (InstantiationException e1) {}
        catch (IllegalAccessException e1) {}
    }

    public static class B {
        static Exception e;
        public B() throws Exception { throw e; }
    }
}
{code}
                
> Class.newInstance() can throw any checked exceptions and must be encapsulated 
> with catching Exception
> -----------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-6639
>                 URL: https://issues.apache.org/jira/browse/HBASE-6639
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.94.1
>            Reporter: Hiroshi Ikeda
>            Priority: Minor
>
> There are some logics to call Class.newInstance() without catching Exception,
> for example, in the method CoprocessorHost.loadInstance().
> Class.newInstance() is declared to throw InstantiationException and 
> IllegalAccessException but indeed the method can throw any checked exceptions 
> without declaration.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to