Noneは使わない方向で考えた方がいいらしい
エラー用の戻り値と正常で0や空文字列を返す場合を厳密に区別するのを忘れていつかバグる