Dev

Instagram
Defensive programming is good! You can keep it there.

But as a general practice:

   * If you find there are more cases, you should comment what are the cases. Even if you say, "there is an irreproducible error blabla...", it's better than nothing. Of course, the best case is that you can record the error details on the [issue tracker](https://github.com/hupili/snsapi/issues) so that people can keep on tracing it.
   * For "irreproducible" or obsecure errors, you need to add log after adding defensive codes. Next time when it happened, we at least have a clue to catch it.