나는 어쨌든 함수 std:sort
에 던져지는 예외를 잡는 방법을 묻고 싶습니다. 이 코드를 사용해 보았습니다.표준에서 예외 잡기
try
{
sort([arguments])
}
catch(...)
{
cout << "error";
}
그러나 작동하지 않습니다. 어떤 가능성이 있습니까, 이것을 쓰는 방법은 있습니까?
나는 어쨌든 함수 std:sort
에 던져지는 예외를 잡는 방법을 묻고 싶습니다. 이 코드를 사용해 보았습니다.표준에서 예외 잡기
try
{
sort([arguments])
}
catch(...)
{
cout << "error";
}
그러나 작동하지 않습니다. 어떤 가능성이 있습니까, 이것을 쓰는 방법은 있습니까?
주석에 따라 다시 : "액세스 위반"- 이것은 OS보고 예외이며 C++ 예외는 아닙니다. 이는 대개 약한 순서를 만들지 않는 비교 객체를 전달한 결과입니다. "[주장]"을 표시하는 것을 귀찮게하지 않으므로 더 이상 진단 할 수 없습니다.
The reasons that sort
will throw은 다음과 같습니다
을 던져에
- 요소 비교 그래서
sort
의 원인 반복자는
try {
sort(begin(foo), end(foo), [](auto& lhs, auto& rhs) {
throw exception();
return lhs < rhs;
});
} catch(...) {
cout << "error\n";
}
방법이 작동하지 않습니다 : 그것은 conmarator를 작성 훨씬 쉽게 때문에
, 난 당신에게 그 방법을 보여 드리죠? 무슨 일이야? [mcve]를 만들 수 있습니까? 호기심에서 벗어난 – NathanOliver
, 예외는 무엇입니까? –
디버거에서 예외가 발생했을 때 예외 유형이 표시되면 이름을 붙이십시오. –