ImageMagick を使用してインターネットから写真を取得しようとしています。ある時、問題を抱えた人が出てきます。どうすればそれを処理できますか?
char file[] = "http://distilleryimage10.s3.amazonaws.com/1f6be58e383e11e3acaf22000ae80c8d_8.jpg";
Magick::Image image;
// use Magick to load the file
try {
image.read(file);
}
catch(int err) {
printf("Error retrieving snapshot. Skipping.\n");
return;
}
/* ... use this image */
たとえば、その特定の URL はアクセスが制限されています。ImageMagick は例外をスローし、次のように言います。
terminate called after throwing an instance of 'Magick::ErrorCoder'
what(): Magick: no data returned `http://distilleryimage10.s3.amazonaws.com/1f6be58e383e11e3acaf22000ae80c8d_8.jpg' @ error/url.c/ReadURLImage/232
Aborted
私のtry/catchがそれをキャプチャすると思っていましたが、pythonのtry/exceptの経験が豊富です。404 や 500 など、他の原因によっても障害が発生する可能性があると思います。
私に何ができる?