chain of responsiblity design pattern gives error: not all code paths return a value
<p>This codes give me eror:"ConcreteHandler1 : Handler" and others.Error: "not all code paths return a value " error in functions?</p>

<pre><code>  public abstract class Handler
    {
         protected Handler BirSonrakiAdim;
        public void NextStep(Handler BirSonrakiAdim)
        {
            this.BirSonrakiAdim = BirSonrakiAdim;
        }
        public abstract ReturnFaiz HandleRequest(int mevduat);
    }


public class ConcreteHandler1 : Handler
    {
        public override ReturnFaiz HandleRequest(int mevduat)
        {

            if (mevduat &#62; 0 && mevduat &#60; 1000)
            {
                return ReturnFaiz.faiztype1;
            }
            else if (BirSonrakiAdim != null)
            {
                BirSonrakiAdim.HandleRequest(mevduat);
            }
            else
                return ReturnFaiz.faiztype1;

        }
    }


   public class ConcreteHandler2 : Handler
    {
        public override ReturnFaiz HandleRequest(int mevduat)
        {

            if (mevduat &#62; 1000 && mevduat &#60; 3000)
            {
              return ReturnFaiz.faiztype2;
            }
            else if (BirSonrakiAdim != null)
            {
                BirSonrakiAdim.HandleRequest(mevduat);
            }
            else
                return ReturnFaiz.faiztype1;
          }
    }


 public class ConcreteHandler3 : Handler
    {
        public override ReturnFaiz HandleRequest(int mevduat)
        {
            if(mevduat&#62;3000)
            {
                return ReturnFaiz.faiztype3;
            }
            else if(BirSonrakiAdim!=null)
            {
                BirSonrakiAdim.HandleRequest(mevduat);
            }
            else
                return ReturnFaiz.faiztype1;
         }
    }



public enum ReturnFaiz
    {
        faiztype1=20,
        faiztype2=30,
        faiztype3=40
    }



   public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ;
            }
        }

        protected void BtnHesapla_Click(object sender, EventArgs e)
        {
            Handler h1 = new ConcreteHandler1();
            Handler h2 = new ConcreteHandler2();
            Handler h3 = new ConcreteHandler3();

            h1.NextStep(h2);
            h2.NextStep(h3);

            Label1.Text= h1.HandleRequest(Convert.ToInt32(TextBox1.Text)).ToString();
        }
    }

</code></pre>
