Skip to content

Commit

Permalink
New 3.0 branch
Browse files Browse the repository at this point in the history
  • Loading branch information
ironfede committed Oct 20, 2024
1 parent 87c6152 commit 189abb8
Show file tree
Hide file tree
Showing 19 changed files with 3,350 additions and 0 deletions.
214 changes: 214 additions & 0 deletions sources/OpenMcdf3/CFException.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,214 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* The Original Code is OpenMCDF - Compound Document Format library.
*
* The Initial Developer of the Original Code is Federico Blaseotto.*/

using System;
using System.Runtime.Serialization;

namespace OpenMcdf3
{
/// <summary>
/// OpenMCDF base exception.
/// </summary>
[Serializable]
public class CFException : Exception
{
public CFException()
: base()
{
}

protected CFException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}

public CFException(string message)
: base(message, null)
{
}

public CFException(string message, Exception innerException)
: base(message, innerException)
{
}
}

/// <summary>
/// Raised when a data setter/getter method is invoked
/// on a stream or storage object after the disposal of the owner
/// compound file object.
/// </summary>
[Serializable]
public class CFDisposedException : CFException
{
public CFDisposedException()
: base()
{
}

protected CFDisposedException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}

public CFDisposedException(string message)
: base(message, null)
{
}

public CFDisposedException(string message, Exception innerException)
: base(message, innerException)
{
}
}

/// <summary>
/// Raised when opening a file with invalid header
/// or not supported COM/OLE Structured storage version.
/// </summary>
[Serializable]
public class CFFileFormatException : CFException
{
public CFFileFormatException()
: base()
{
}

protected CFFileFormatException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}

public CFFileFormatException(string message)
: base(message, null)
{
}

public CFFileFormatException(string message, Exception innerException)
: base(message, innerException)
{
}
}

/// <summary>
/// Raised when a named stream or a storage object
/// are not found in a parent storage.
/// </summary>
[Serializable]
public class CFItemNotFound : CFException
{
protected CFItemNotFound(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}

public CFItemNotFound()
: base("Entry not found")
{
}

public CFItemNotFound(string message)
: base(message, null)
{
}

public CFItemNotFound(string message, Exception innerException)
: base(message, innerException)
{
}
}

/// <summary>
/// Raised when a method call is invalid for the current object state
/// </summary>
[Serializable]
public class CFInvalidOperation : CFException
{
public CFInvalidOperation()
: base()
{
}

protected CFInvalidOperation(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}

public CFInvalidOperation(string message)
: base(message, null)
{
}

public CFInvalidOperation(string message, Exception innerException)
: base(message, innerException)
{
}
}

/// <summary>
/// Raised when trying to add a duplicated CFItem
/// </summary>
/// <remarks>
/// Items are compared by name as indicated by specs.
/// Two items with the same name CANNOT be added within
/// the same storage or sub-storage.
/// </remarks>
[Serializable]
public class CFDuplicatedItemException : CFException
{
public CFDuplicatedItemException()
: base()
{
}

protected CFDuplicatedItemException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}

public CFDuplicatedItemException(string message)
: base(message, null)
{
}

public CFDuplicatedItemException(string message, Exception innerException)
: base(message, innerException)
{
}
}

/// <summary>
/// Raised when trying to load a Compound File with invalid, corrupted or mismatched fields (4.1 - specifications)
/// </summary>
/// <remarks>
/// This exception is NOT raised when Compound file has been opened with NO_VALIDATION_EXCEPTION option.
/// </remarks>
[Serializable]
public class CFCorruptedFileException : CFException
{
public CFCorruptedFileException()
: base()
{
}

protected CFCorruptedFileException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}

public CFCorruptedFileException(string message)
: base(message, null)
{
}

public CFCorruptedFileException(string message, Exception innerException)
: base(message, innerException)
{
}
}
}
Loading

0 comments on commit 189abb8

Please sign in to comment.