// ========================================================================== // This software is subject to the provisions of the Zope Public License, // Version 2.0 (ZPL). A copy of the ZPL should accompany this distribution. // THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED // WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED // WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS // FOR A PARTICULAR PURPOSE. // ========================================================================== using System; namespace Python.Test { //======================================================================== // Supports CLR Exception unit tests. //======================================================================== public class ExceptionTest { public int ThrowProperty { get { throw new OverflowException("error"); } set { throw new OverflowException("error"); } } public static Exception GetBaseException() { return new Exception("error"); } public static OverflowException GetExplicitException() { return new OverflowException("error"); } public static Exception GetWidenedException() { return new OverflowException("error"); } public static ExtendedException GetExtendedException() { return new ExtendedException("error"); } public static bool SetBaseException(Exception e) { return typeof(Exception).IsInstanceOfType(e); } public static bool SetExplicitException(OverflowException e) { return typeof(OverflowException).IsInstanceOfType(e); } public static bool SetWidenedException(Exception e) { return typeof(Exception).IsInstanceOfType(e); } public static bool ThrowException() { throw new OverflowException("error"); } } public class ExtendedException : OverflowException { public ExtendedException() : base() {} public ExtendedException(string m) : base(m) {} public string extra = "extra"; public string ExtraProperty { get { return extra; } set { extra = value; } } public string GetExtraInfo() { return extra; } } }