title: try-catch instead of if in edge cases
body: <p>Would it be a good idea to replace the if statements with try-catch in the following usecases (performance and readability wise?):</p>
  <p><strong>Example 1</strong></p>
  <pre><code>public static void AddInitializable(GameObject initializable)
  {
      if(!HasInstance)
      { // this should only happen if I have forgotten to instantiate the GameManager manually
          Debug.LogWarning(&quot;GameManager not found.&quot;);
          return;
      }
  
      instance.initializables.Add(initializable);
      initializable.SetActive(false);
  }
  
  public static void AddInitializable2(GameObject initializable)
  {
      try
      {
          instance.initializables.Add(initializable);
          initializable.SetActive(false);
      }
      catch
      {
          Debug.LogWarning(&quot;GameManager not found.&quot;);
      }
  }
  </code></pre>
  <p><strong>Example 2</strong></p>
  <pre><code>public static void Init(int v)
  {
      if(!HasInstance)
      {// this should happen only once
          instance = this;
      }
  
      instance.alj = v;
  }
  
  public static void Init2(int v)
  {
      try
      {
          instance.alj = v;
      }
      catch
      {
          instance = this;
          Init(v);
      }
  }
  </code></pre>
  <p>Edit:</p>
  <p>Question 2: How many Exceptions can I get to be still performance positive?</p>