我已经无数次使用堆栈溢出,但在我自己教c ++的过程中,我发现是时候注册并成为社区的一部分了。我的问题是关于Bjarne Stroustrup的使用c ++的原理和实践的第5章。书中的例子,以及我在网上找到的讲座幻灯片,显示错误处理如下......
static void Main(string[] args)
{
var student1 = new Student
{
FirstName = "John",
LastName = "Smith",
Age = 18,
DateOfBirth = DateTime.Parse("1989/03/03"),
Job = new Job
{
Company = "CompanyOne",
Title = "Supervisor"
},
PhoneNumbers = new List<PhoneNumber>
{
new PhoneNumber
{
Number = "8675309",
Label = "Home"
},
new PhoneNumber
{
Number = "1234567",
Label = "Work"
}
}
};
var student2 = new Student
{
FirstName = "Theodore",
LastName = "Smith",
Age = 22,
DateOfBirth = DateTime.Parse("1990/03/03"),
Job = new Job
{
Company = "CompanyOne",
Title = "Manager"
},
PhoneNumbers = new List<PhoneNumber>
{
new PhoneNumber
{
Number = "8675308",
Label = "Home"
},
new PhoneNumber
{
Number = "1234567",
Label = "Work"
}
}
};
CompareObjects(student1, student2);
Console.WriteLine("Done");
Console.ReadKey();
}
我已经做了很多研究,想想也许这是一个在VS 15中发生变化的语法事物,或者可能是我们创建的书头文件有问题。我得到的错误信息是......
ConsoleApplication5.exe中0x74E5C42D处的未处理异常:Microsoft C ++异常:内存位置0x002CF5E4处的std :: runtime_error。
非常感谢任何帮助。
答案 0 :(得分:2)
std::runtime_error
是一个标准例外(有关更多标准例外情况,请参阅this error handling reference)。我的 guess 没有看到error
函数就是它抛出std::runtime_error
异常。
换句话说,它通常不是VS2015或C ++的特定内容,它只是如何为本书中的示例设计错误处理。