If you want to define z^a for a non-integer (irrational, actually), and z complex, you have to set up a branch of complex log and then define ##z^a := e^{(alogz)}## to have an unambiguous definition ( and single-valued function). But then you have the problem that log0 =ln|0|+iarg0 . The argument is variable, depending on the branch, but ln0 cannot be defined.
And, from another perspective, a log z will be a local inverse for expz , which has no global inverse, since it is not 1-1 ( it is infinite-to-1, actually) , but has local inverses, e.g., by the inverse function theorem, and these local inverses are precisely the branches of logz. But exp z is never 0.