有没有办法从未处理的异常中查看解释性字符串?我正在使用Visual Studio 2012 Express,似乎无法找到方法来查看它.
当我运行以下代码时:
#include <stdexcept>
int main(int argc, char* argv[])
{
throw std::runtime_error("warp core breach");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我在输出窗口中得到的是:
First-chance exception at 0x7652C41F in vstest.exe: Microsoft C++ exception: std::runtime_error at memory location 0x0015F6A4.
Unhandled exception at at 0x7652C41F in vstest.exe: Microsoft C++ exception: std::runtime_error at memory location 0x0015F6A4.
Run Code Online (Sandbox Code Playgroud)
我本来期望在那里打印"warp core breach"消息.我将调试 - >输出窗口 - >常规输出设置下的所有选项设置为开.
我有一些关于在foreach()循环期间修改数组的问题.在下面的代码中,我遍历三个包含闭包/回调的数组并调用每个数组.我在迭代期间向每个数组的末尾附加一个闭包,但是有时foreach()似乎没有认识到数组已经改变了大小,因此附加的闭包不会被调用.
class Foo
{
private $a1 = array();
private $a2 = array();
public function f()
{
echo '<pre style="font-size: 20px;">';
echo 'PHP: ' . phpversion() . '<br><br>';
$this->a1[] = function() { echo 'a1 '; };
$this->a1[] = array($this, 'g');
foreach ($this->a1 as &$v)
{
// The callback added in g() never gets called.
call_user_func($v);
//echo 'count(v) = ' . count($v) . ' ';
}
echo '<br>';
// The same thing works fine with a for() loop.
$this->a2[] = function() { …Run Code Online (Sandbox Code Playgroud)