如何处理JPEG#41错误

时间:2012-03-08 17:39:02

标签: c++ windows error-handling jpeg c++builder-6

我在C ++ Builder6中有一个项目。有一个OpenDialog,我将图像上传到项目中。我希望我的项目是安全的,因为它只接受.jpg或.bmp图像我决定限制。就我而言,我可以通过将我的流阅读器设置到第4位来识别.jpg文件。如果我在这里找到“JFIF”,它将是.jpeg文件。等等。 这是我的代码

if(OpenDialog1->Execute()) 
{
    TFileStream *stream = new TFileStream(OpenDialog1->FileName, fmOpenRead);
    if(stream != NULL) 
    {
        if(stream->Size < 10) 
        {
            delete stream;
            return;
        }
        char str[10];
        stream->Read(str, 10);
        if(AnsiString(str + 6).SetLength(4)=="JFIF")
        {
            ShowMessage("It's jpeg");
        }
        else if ( AnsiString(str).SetLength(2)=="BM") {
            ShowMessage("It's bmp");
        }
        else
        {
            ShowMessage("It can not be downloaded");
            return;
        }
    }
    delete stream;
}

但不幸的是,当我在这里放置一个带有重命名扩展名的文本文件时,代码引发了关于JPEG错误#41的异常。

enter image description here

所以我的想法不起作用。整个问题是: 我可以让程序在不使用try-catch方法的情况下返回错误消息吗?


顺便说一句,我理解为什么会引发异常,因为我的jpeg文件是空的。但我想用我自己的系统处理它,而不是标准的例外。

0 个答案:

没有答案