хотя new никогда не должен возвращать нулевой указатель, поэтому вызывающая сторона может рассчитывать на это, а компилятор мог бы исключить ptr == 0 проверять и обрабатывать зависимый код как недостижимый.
Почему компилятор не удаляет этот код? Это просто пропущенная оптимизация или есть какая-то другая причина?
хотя new никогда не должен возвращать нулевой указатель, поэтому вызывающая сторона может рассчитывать на это, а компилятор мог бы исключить ptr == 0 проверять и обрабатывать зависимый код как недостижимый.
Почему компилятор не удаляет этот код? Это просто пропущенная оптимизация или есть какая-то другая причина?
В программе с jdk1.8 я встретил довольно странный случай:
когда я получил исключение нулевого указателя в методе String.length (который находится в методе StringBuilder.append()),
точная позиция исключения нулевого указателя находится здесь, в...
Допустим, у меня есть такой метод, как это:
Task GetThingAsync(long id);
Предположим, что этот метод всегда будет возвращать не-нулевый t (или бросить).
Затем, скажем, я называю это :
public async void Method(IRepository repo)
{
var x = await...
Допустим, у меня есть такой метод, как это:
Task GetThingAsync(long id);
Предположим, что этот метод всегда будет возвращать не-нулевый t (или бросить).
Затем, скажем, я называю это :
public async void Method(IRepository repo)
{
var x = await...