Улавливание неспецифических сигналов в C [дубликат]

Типы ссылок по умолчанию равны null, чтобы указать, что они не ссылаются на какой-либо объект. Следовательно, если вы попытаетесь получить доступ к объекту, на который ссылаетесь, а его нет, вы получите исключение NullReferenceException.

Для Ex:

SqlConnection connection = null;
connection.Open();

Когда вы запускаете это кода, вы получите:

System.NullReferenceException: Object reference not set to an instance of an object.

Вы можете избежать этой ошибки, например, следующим образом:

if (connection != null){
    connection.Open();
}

Примечание. Чтобы избежать этой ошибки, вы всегда должны инициализировать свои объекты прежде чем пытаться что-либо сделать с ними.

8
задан ammianus 24 October 2010 в 17:20
поделиться

3 ответа

Я не вижу, как вы можете прямо установить один обработчик для всех сигналов. Однако вы можете получить справедливо закройте с помощью sigfillset() , чтобы сгенерировать набор, содержащий все допустимые номера сигналов, а затем перебрать возможные номера сигналов с помощью sigismember() , чтобы определить, находится ли это число в наборе и, если да, установите обработчик. Хорошо, я не вижу метода определения того, что такое максимально возможный номер сигнала, поэтому вам, возможно, придется угадать подходящее максимальное значение.

3
ответ дан Tim 23 August 2018 в 17:46
поделиться
1
ответ дан Dan Yard 23 August 2018 в 17:46
поделиться

Параметр «signum» системного вызова «sigaction» представляет собой целочисленное значение, которое не работает как флаг.

Насколько я знаю, нет способа назначить одну функцию обработчика для нескольких сигналов за один вызов.

3
ответ дан Kel 23 August 2018 в 17:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: