Now I have a working code for Bisection Method but there are some cases I want to handle
1- The boundaries of trial: Can we put a negative interval? ex. start with $f(-5)$ and end with $f(5)$ ?
2- If we start with zero and the function have $Ln()$ or $Log()$, that will give an error, Is there a special case to handle that ?
3- What if I have a function like $x^2-4 = 0$ which have 2 roots of $2$ & $-2$ , how can it be handled?
You start with two values $x_1 < x_2$ which bracket a zero, i.e. the function values $f(x_1)$ and $f(x_2)$ have opposite sign. And of course $f(x)$ must be continuous and defined on the interval $[x_1, x_2].$
$x_1=-5$ and $x_2=5$ are valid starting points, if the signs of the function values are opposite.
The requirement that is continuous is needed e.g. for $f(x)=-1, x<0, f(x)=1, x\ge0$ which has no zero but your process converges with $x_1 = -1, x_2=2.$
After your edit: It seems that your main problem is finding the starting values. There is no single universal method. Often the starting points are given by the problem itself. A simple start is to look a plot of the function or a make table of $x, f(x).$
Regarding 3: Of course you can find both solutions. Again, look at a plot and see that one root is bracketed by $[-10,0]$ and other by $[0,10].$