Как это возможно, что брошено объект TimeoutException является недействительным, и он бросаетTimeoutException равна нулю при метании
ссылка на объект не указывает на экземпляр объекта.
в следующей строке:
writeToLog (e2.ToString());
Проверьте этот код.
WebServiceRef.CallResponse callResponse = null;
try
{
callResponse = webServiceClient.Call(callRequest);
}
catch (TimeoutException e)
{
try
{
WebServiceRef.CallStatusResponse callStatusResponse = webServiceClient.CallStatus(callStatusRequest);
if (callStatusResponse.ResponseCode != 0)
{
throw new Exception("nok: " + callResponse.ResponseCode);
}
}
catch (TimeoutException e2)
{
writeToLog(e2.ToString());
}
}
Это мой метод writeToLog.
private static void writeToLog(String logMsg)
{
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"log.txt", true))
{
file.WriteLine(DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss ") + logMsg);
}
}
StackTrace и сообщения заключается в следующем:
Object reference not set to an instance of an object.
at ...(...) in c:\...cs:line 82
at ...(...) in c:\...cs:line 193
линия 82 является точкой, в
writeToLog (e2.ToString());
Этого не может быть и нет. У вас есть полный стек исключения и обновлены ли ваши отладочные символы? (Очистите и перестройте, если вы не уверены.) Убедитесь, что 'writeLog' - это не метод, который бросает' NullReferenceException'. –
@fritz Невозможно выбрасывать исключение NULL, и поэтому невозможно исключить исключение null, поэтому код, который вы показываете нам, не может быть фактическим кодом. –
Вы уверены, что это строка кода, которая бросает исключение? Попробуйте включить _Debug -> Исключения -> «Исключения для обычного языка Runtime» -> Thrown_ и повторный запуск кода. –