Malformed zip file should throw ZipException or BadReadException, not IOException

I think that a malformed zip file should throw ZipException or BadReadException when calling ZipFile.Read(). The following code throws an IOException with the message "An attempt was made to move the file pointer before the beginning of the file."