. , , . : w/return 30 . 20370 .
, - , .
:
#include <stdio.h>
#include <intrin.h>
int Test1()
{
throw 1;
}
int main(int argc, char*argv[])
{
int result = 0;
__int64 time = 0xFFFFFFFF;
for(int i=0; i<10000; i++)
{
__int64 start = __rdtsc();
try
{
result += Test1();
}
catch(int x)
{
result += x;
}
__int64 end = __rdtsc();
if(time > end - start)
time = end - start;
}
printf("%d\n", result);
printf("time: %I64d\n", time);
}
try/catch, op
try
{
if(Test1()!=0)
result++;
}
catch(int x)
{
result++;