小编Sha*_*yna的帖子

即使代码在try/catch块中,我仍然会遇到异常

如果给定的用户输入无效,我写了一些遇到异常的代码,所以我把它放在try/catch块中,但它仍然引发异常.代码本身很长,所以这里是代码的简化版本,也遇到了异常.异常本身很清楚,位置"3"不存在,所以它会抛出一个异常,但它在try/catch块内,所以它应该被捕获,但事实并非如此.

int main() {
    try
    {
        vector<string> test = vector<string>{ "a","b","c" };
        string value = test[3];
    }
    catch (...)
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

运行此代码只会导致以下异常,无论它是否在try/catch块中.

例外

我也试过指定异常(const out_of_range&e),但这也没有帮助.它只是引起了完全相同的异常.

int main() {
    try
    {
        vector<string> test = vector<string>{ "a","b","c" };
        string value = test[3];
    }
    catch (const out_of_range&e)
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Visual Studio,这可能是IDE或它使用的编译器的问题吗?

c++ exception visual-c++

6
推荐指数
2
解决办法
309
查看次数

我可以使用=运算符指定构造函数值吗?

在C#中创建一个字符串时,你string foo = "bar";要将字符串作为一个类,并使用=运算符将值"bar"传递给类.怎么做的?你能在自己的班上做这件事吗?

我知道这在C++中是可行的.

class someClass {
public:
    someClass(int someInt) {
        // Do Stuff
    }

};

int main() {
    someClass classInst = 123;
}
Run Code Online (Sandbox Code Playgroud)

但是C#会等同于什么?

c# constructor operators

3
推荐指数
1
解决办法
76
查看次数

为什么 C# 中的 for 循环在连接字符串时如此缓慢?

我写了一个程序,它在 C++ 和 C# 中运行一个简单的 for 循环,但在 C# 中同样的事情花费的时间要长得多,这是为什么?我在测试中没有考虑到某些事情吗?

C# (13.95s)

static double timeStamp() {
    return (double)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
}

static void Main(string[] args) {
    double timeStart = timeStamp();

    string f = "";
    for(int i=0; i<100000; i++) {
        f += "Sample";
    }

    double timeEnd = timeStamp();
    double timeDelta = timeEnd - timeStart;
    Console.WriteLine(timeDelta.ToString());
    Console.Read();
}
Run Code Online (Sandbox Code Playgroud)

C++ (0.20s)

long int timeStampMS() {
    milliseconds ms = duration_cast<milliseconds> (system_clock::now().time_since_epoch());
    return ms.count();
}

int main() {
    long int timeBegin = timeStampMS();

    string test …
Run Code Online (Sandbox Code Playgroud)

c# c++ performance for-loop

-1
推荐指数
1
解决办法
1077
查看次数