There are three major philosophies of normative ethics which is Deontology, Consequentialism and Virtue ethics. I will type about each one in the respective order.
Deontology is the duty-based ethics school, meaning that certain actions are absolutely forbidden regardless of any consequences. The problem with this is that having more than one action being forbidden is that they can conflict with each other, this is not simply a abstract problem but its a practical one. For example (In a system that forbids breaking promises and lying), Person A asks you to make a promise to keep it a secret that she is going somewhere instead of staying home, later Person B asks if Person A is going to stay home. In the case that I described, you can’t avoid one action that is forbidden without doing another forbidden action. There are two ways to recuse Deontology here with one limiting the number of forbidden actions to one or having a hierarchy of actions. in both cases, a ad hoc hypothesis was put forward. one ad hoc hypothesize is not going to ruin an entire moral system, but too many of them will (I personally think that some moral philosophers does add too many ad hoc hypothesis because of terrible objections that only seem compelling because of intuition, but that is for another post).
Next is Consequentialism