The function is

Remember that, for y to be a number, we cannot have things of the form

Therefore, we always need to avoid this kind of result.
We can see that the only way 'y' acquires a value like that is if

Therefore, y is well for any value of x, except when x=-3.
Thus, the domain of the function y (y(x)) is

The domain of y is all the numbers except for -3