assertを使用するためのベストプラクティス?

| |
  1. デバッグ目的でのみ使用するのではなく、標準コードの一部として assert を使用すると、パフォーマンスやコードのメンテナンスに問題がありますか?

      assert x> = 0、"xはゼロ未満" 

    より良いまたは悪い

      if x< 0:例外を発生させます。「xはゼロ未満です」 
  2. また、 if x<のようなビジネスルールを設定する方法はありますか。 0はエラーを発生させます。これは常にtry/ exception / final なしでチェックされるため、コード全体でいつでも x が0未満の場合、エラーが発生します。 assert x<を設定した場合のように0 関数の開始時、 x が0未満になる関数内のどこかで、例外が発生しますか?