本文整理汇总了C#中ParseResult.CreateException方法的典型用法代码示例。如果您正苦于以下问题:C# ParseResult.CreateException方法的具体用法?C# ParseResult.CreateException怎么用?C# ParseResult.CreateException使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ParseResult
的用法示例。
在下文中一共展示了ParseResult.CreateException方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ParseResult_DefaultConstructed
public void ParseResult_DefaultConstructed()
{
// Default-constructed parse results don't contain a valid version or
// an error code, so the only thing they can reasonably do is throw
// an exception when you try to use them.
var pr = new ParseResult();
new Action(() => { var x = pr.Type == ParseResultType.Success; })
.AssertThrows<InvalidOperationException>(
"Did not throw on use of default-constructed result (0).");
new Action(() => { var x = pr.Version == null; })
.AssertThrows<InvalidOperationException>(
"Did not throw on use of default-constructed result (1).");
new Action(() => pr.GetErrorMessage())
.AssertThrows<InvalidOperationException>(
"Did not throw on use of default-constructed result (2).");
new Action(() => pr.CreateException())
.AssertThrows<InvalidOperationException>(
"Did not throw on use of default-constructed result (3).");
}
示例2: ParseResult_General
public void ParseResult_General()
{
// Make sure that passing in the [Success] status always fails.
var ex = new Lazy<Exception>(() => new Exception());
new Action(() => new ParseResult(ParseResultType.Success))
.AssertThrowsExact<ArgumentException>(
"Did not throw when passed [Success] code (0).");
new Action(() => new ParseResult(ParseResultType.Success, ex))
.AssertThrowsExact<ArgumentException>(
"Did not throw when passed [Success] code (1).");
// Make sure that an invalid status fails.
new Action(() => new ParseResult((ParseResultType)(-1)))
.AssertThrowsExact<ArgumentException>(
"Did not throw on invalid status code (0).");
new Action(() => new ParseResult((ParseResultType)(-1), ex))
.AssertThrowsExact<ArgumentException>(
"Did not throw on invalid status code (1).");
// Make sure that a null exception provider fails.
new Action(
() => new ParseResult(ParseResultType.InvalidVersion, null))
.AssertThrows<ArgumentNullException>(
"Did not throw on null exception provider.");
// Tests that accessing the properties of a default-constructed
// [ParseResult] fails with an exception.
var defPr = new ParseResult();
new Action(() => defPr.Type.GetHashCode())
.AssertThrows<InvalidOperationException>(
"Did not throw on invalid access (0).");
new Action(() => defPr.ComparatorSets.GetHashCode())
.AssertThrows<InvalidOperationException>(
"Did not throw on invalid access (1).");
new Action(() => defPr.GetErrorMessage())
.AssertThrows<InvalidOperationException>(
"Did not throw on invalid access (2).");
new Action(() => defPr.CreateException())
.AssertThrows<InvalidOperationException>(
"Did not throw on invalid access (3).");
// Makes sure that attempting to create an exception/retrieve an
// error message with a success-state [ParseResult] fails.
var sucPr = new ParseResult(new ComparatorToken[0][]);
new Action(() => sucPr.GetErrorMessage())
.AssertThrows<InvalidOperationException>(
"Did not throw on invalid [GetErrorMessage] call.");
new Action(() => sucPr.CreateException())
.AssertThrows<InvalidOperationException>(
"Did not throw on invalid [CreateException] call.");
}
示例3: ParseResult_ErrorCodes
public void ParseResult_ErrorCodes()
{
ParseResult
pr0 = new ParseResult(ParseResultType.NullString),
pr1 = new ParseResult(ParseResultType.PreTrioInvalidChar),
pr2 = new ParseResult(ParseResultType.TrioInvalidChar),
pr3 = new ParseResult(ParseResultType.TrioItemLeadingZero),
pr4 = new ParseResult(ParseResultType.TrioItemMissing),
pr5 = new ParseResult(ParseResultType.TrioItemOverflow),
pr6 = new ParseResult(ParseResultType.IdentifierMissing),
pr7 = new ParseResult(ParseResultType.IdentifierInvalid),
pr8 = new ParseResult(ParseResultType.MetadataMissing),
pr9 = new ParseResult(ParseResultType.MetadataInvalid);
// The [ParseResult] struct has a method, [CreateException],
// that will handily create the appropriate exception to throw
// for us. We want to make sure that it's returning the correct
// type of exception.
Assert.IsTrue(pr0.CreateException() is ArgumentNullException,
"Incorrect exception type (0).");
Assert.IsTrue(pr1.CreateException() is FormatException,
"Incorrect exception type (1).");
Assert.IsTrue(pr2.CreateException() is FormatException,
"Incorrect exception type (2).");
Assert.IsTrue(pr3.CreateException() is FormatException,
"Incorrect exception type (3).");
Assert.IsTrue(pr4.CreateException() is ArgumentException,
"Incorrect exception type (4).");
Assert.IsTrue(pr5.CreateException() is OverflowException,
"Incorrect exception type (5).");
Assert.IsTrue(pr6.CreateException() is ArgumentException,
"Incorrect exception type (6).");
Assert.IsTrue(pr7.CreateException() is FormatException,
"Incorrect exception type (7).");
Assert.IsTrue(pr8.CreateException() is ArgumentException,
"Incorrect exception type (8).");
Assert.IsTrue(pr9.CreateException() is FormatException,
"Incorrect exception type (9).");
// Next, we want to make sure that an attempt to create a
// fail-state [ParseResult] with the [Success] status fails.
new Action(() => new ParseResult(ParseResultType.Success))
.AssertThrowsExact<ArgumentException>(
"Attempt to create result with status [Success] did " +
"not throw.");
// Then we want to test that calling [CreateException] on a
// [ParseResult] without an error code throws an exception.
new Action(() => new ParseResult(new SemanticVersion(1, 0))
.CreateException())
.AssertThrows<InvalidOperationException>(
"Call to [CreateException] with status [Success] did " +
"not throw.");
// And, last but not least, we want to make sure that an
// invalid error code throws an exception.
new Action(() => new ParseResult((ParseResultType)(-4025820)))
.AssertThrowsExact<ArgumentException>(
"Did not throw on invalid error code.");
}