В Java переменные класса и экземпляра принимают значение по умолчанию (null, 0, false), если они не инициализируются вручную. Однако локальные переменные не имеют значения по умолчанию. Если локальной переменной не присвоено значение, компилятор откажется компилировать код, который его читает. IMHO, это приводит к выводу, что инициализация локальной переменной с некоторым значением по умолчанию (например, null, которое может привести к NullPointerException позже), когда оно объявлено, на самом деле плохо. Рассмотрим следующий пример:
Object o;
if (<some boolean condition>)
o = <some value>;
else
o = <some other value>;
System.out.println(o);
Инициализация o
с нулем совершенно не нужна, поскольку компилятор Java проверяет во время компиляции, что любой путь кода инициализирует o
(с нулевым или некоторое ненулевое значение) перед чтением переменной. Это означает, что компилятор откажется компилировать строку System.out.println(o);
, если вы прокомментируете любую из двух инициализаций переменной o
в фрагменте кода выше.
Это выполняется для Java и возможно, только для Java. Я не знаю о языке, как C #. Тем не менее, в хорошем старом C (и, возможно, C ++), всегда рекомендуется инициализировать переменные при объявлении их AFAIK. Такие «старые школьные» языки программирования могут быть причиной того, что рекомендация всегда инициализировать переменные появляется в книгах и дискуссиях о современных языках, таких как Java, где компилятор отслеживает, была ли инициализирована переменная или нет.
Можно изменить способ, которым повреждается Visual Studio, когда исключение происходит. По умолчанию это повреждается на необработанных исключениях. Если Вы переходите к меню Debug> Exceptions, можно снять флажок с Исключениями Общеязыковой среды выполнения и внести другие изменения в поведении IDE, когда исключения происходят. Например, у Вас может быть он повреждение только на одном виде исключения; там существует длинный список.
я сделал это в редких случаях при попытке отладить.
Если Вы хотите сделать в IDE, Отладке->, Исключениями является диалоговое окно, где можно попросить, чтобы IDE повредился, когда specific/category/all исключения выдаются.
Option Strict Off
, который позволяет более слабую проверку типа. Тем не менее, there’s чистое семантическое различие между этими двумя операциями и битовыми операциями никогда не предназначались для условных выражений в VB.NET (если бы они были, они все еще работали бы с Option Strict On
который они don’t).
– Konrad Rudolph
18 September 2009 в 20:41
Нет, нет. Почему там был бы? Чего Вы пытаетесь достигнуть?
, Если Вы хотите повредиться, как только конкретный тип исключения брошен, можно заставить Visual Studio делать это (Отладка-> Исключения; выберите тип исключительной ситуации, которым Вы интересуетесь и устанавливаете флажок "Thrown"). Мне трудно думать о любой другой причине, почему Вы хотели бы выключить обработку ошибок...
РЕДАКТИРОВАНИЕ: Одна точка, о которой я не думал прежде - какую версию Visual Studio Вы используете? Если это - Экспресс, я не уверен, поддерживается ли это - я могу проверить, но это возьмет некоторое время. Сообщите мне, должен ли я...
Для ловли исключений момент, они брошены ("исключения первого шанса" в языке Win32):
в VS2008: перейдите в Отладка , Исключения...
VS2015: это было перемещено в [1 111] Отладка> Windows>, Настройки Исключения
Тогда проверяют поле , Брошенное для [1 113] Исключения Общеязыковой среды выполнения .