title: How to decide between using if/else vs try/catch?
body: <p>When writing code, how does one decide between using <code>if</code>/<code>else</code> or <code>try</code>/<code>catch</code>? For example, in checking for a file, should this be based on a method such as:</p>
  <pre><code>if (File.Exists(&quot;file.txt&quot;))
  {
      //do stuff
  }
  </code></pre>
  <p>or a <code>try</code>/<code>catch</code> block?</p>
  <p>Another example: writing to a file can be handled via an <code>if</code>/<code>else</code> block to create a file and then write to it, or a <code>try</code>/<code>catch</code> with an assumption that the file exists. What considerations are there in choosing?</p>