title: python3 - Purpose of ModuleNotFoundError
body: <p>I came across the new <code>ModuleNotFoundError</code> exception in Python 3.6 which seems to be a subclass of <code>ImportError</code>. The official documentation for <a href="https://docs.python.org/3/library/exceptions.html#ImportError" rel="nofollow noreferrer">ImportError</a> says:</p>
  <blockquote>
  <p>Raised when the import statement has trouble trying to load a module. </p>
  </blockquote>
  <p>For <a href="https://docs.python.org/3/library/exceptions.html#ModuleNotFoundError" rel="nofollow noreferrer">ModuleNotFoundError</a>:</p>
  <blockquote>
  <p>Raised by import when a module could not be located.</p>
  </blockquote>
  <p>Was it really necessary to introduce an exception like <code>ModuleNotFoundError</code> ? What is it's purpose ? Also when would an <code>import</code> statement &quot;have trouble loading a module&quot; ?</p>