title: What's the recommended way in Dart: asserts or throw Errors
body: <p>Dart explicitly makes a distinction between Error, that signals a problem in your code's logic and should never happen and should never be caught and Exceptions that signal a problem based on run-time data.</p>
  <p>I really like this distinction but I wonder when should I then use <code>assert()</code> functions?</p>