I looked at CheckArguments documentation but it was kind of confusing
because it used an option, which I don't need.
Many functions have options, most of the time you don't need them and that is why they are optional. Why is that confusing?
Your usage of CheckArguments
seems correct, and if it works for you then why not use it? It is certainly more straightforward than the resource function you linked.