title: How IIOException has no no-arg constructor?
body: <p>Suppose we have a class NoArgConstructorClass in a file NoArgConstructorClass.java</p>
  
  <pre><code>/* first example */
  import javax.imageio.IIOException;
  
  public class NoArgConstructorClass
  {    
      public static void main(String[] args)
      {
          NoArgConstructorClass n = new NoArgConstructorClass();
          IIOException e = new IIOException();
      }
  }
  </code></pre>
  
  <p>This code on compilation produces error: no suitable constructor found for IIOException.</p>
  
  <p>Since IIOException should have a no-arg constructor (added by compilator), how it is made that there is no no-arg constructor for IIOException?</p>
  
  <pre><code>/** second example, showing that ClassB inherits a no-arg constructor from Object */
  /** put in ConstructorChain.java */
  public class ConstructorChain
  {
      public static void main(String[] args)
      {
          ClassB b = new ClassB();
      }
  }
  
  /** put in ClassA.java */
  public class ClassA
  {
      public ClassA()
      {
          System.out.println("Class A");
      } 
  }
  
  /** put in ClassB.java */
  public class ClassB
      extends ClassA
  {
  }
  </code></pre>