For example for the following method signature:
def genClusters(n_clusters, n_nodes, cluster_distribution):
n_clusters should be an integer of more than 1.
n_nodes should be an integer of more than n_clusters
cluster_distribution should be a float between 0 and 1.
Should I use a series of if then raise exception statements to handle the argument parameter bounds?
eg:
def genClusters(n_clusters, n_nodes, cluster_distribution): if (cluster_distribution < 0 or cluster_distribution > 1): raise ValueError("cluster distribution must be between 0 and 1") if n_clusters < 1: raise ValueError("n_clusters must be at least 1") if n_nodes <= n_clusters: raise ValueError("n_nodes must be at least n_clusters") The second question is whether I should include these exception statements in every method that also calls this one.
For example:
def myFoo(foo, bar, bang): clusters = genClusters(foo, bar, bang) In this scenario, if foo, bar, or bang don't fit previously defined parameter bounds, an exception will be thrown when genClusters is called. So should I also be throwning exceptions at the start of myFoo?