>>   n >= 0 and array(n)でnに-1が入ってやってくると

これは実行時にしか判断できないから、普通にランタイムエラーになる。
エラーコメントも出るので問題ない。 (エラーが出ないのは困る)