1. C# / Говнокод #28847

    0

    1. 1
    2. 2
    public ArgumentException (string? message, string? paramName);
    public ArgumentNullException (string? paramName, string? message);

    https://learn.microsoft.com/en-us/dotnet/api/system.argumentexception.-ctor?view=net-7.0#system-argumentexception-ctor(system-string-system-string)
    https://learn.microsoft.com/en-us/dotnet/api/system.argumentnullexception.-ctor?view=net-7.0#system-argumentnullexception-ctor(system-string-system-string)

    Запостил: ISO, 15 Сентября 2023

    Комментарии (17) RSS

    • Это какой-то пиздец тонкий троллинг.
      Ответить
    • А мб его никогда не нужно кидать руками, и его всегда кидает рантайм?

      Ловить их никгда не надо, если ты не фрейммворк
      Ответить
      • а что тебе может запретить его кидать?
        Ответить
        • ничего не запретит, к сожалению.

          Обработка ошибок -- каша из собачьего говна и соплей, что в ЯЖА что в шарпе
          Ответить
        • guest6 неправ: вполне можно запретить кидать твоё исключение из чужого кода, сделав все его конструкторы приватными (или internal). Но это не этот случай.
          Ответить
          • я увидел публичный констрктор, и потому и сказал

            в ЯЖА ты тоже можешь кинуть NPE, но ты не должен
            Ответить
      • Нет, это обычное исключение, которое можно и нужно бросать самому. Рантайм его бросать в общем случае не может: любая ссылка в «C#» нуллабельна, работы по исправлению billion dollar mistake только начались (#nullable enable).
        Ответить
        • То-есть ты должен писать типа
          // Не сувайте сюда нул
          void DoAll(Petuh petuh) {
            if (petuh == null) throw new ArgumentNullException("petuh", "сказал же: не совайте, ну")
          }

          ?

          >только начались
          используй силу люк https://www.jetbrains.com/help/resharper/Reference__Code_Annotation_Attributes.ht ml

          правда я х3, чо там в рантайме
          Ответить
          • ты должен написать что-то типа /** @throws blabla */
            Ответить
            • Шарпеи с понтом отказались от checked exceptions, и теперь нужно просто не забывать писать "сроус", и читать тоже не забывать.
              Ответить
          • > ?
            Да, именно так.
            static void Koko1(string foo)
                    {
                        Console.WriteLine($"1 foo = {foo}");
                    }
                    static void Koko2(string? foo)
                    {
                        Console.WriteLine($"2 foo = {foo}");
                    }
            
                    static void Main()
                    {
                        Koko1("hello");
                        Koko2("hello");
                        Koko1(null);    // Ничем не отличается от 2, кроме слабенького ворнинга от IDE
                        Koko2(null);
                    }


            > используй силу люк
            Я, скажем так, в рот ебал эти ёбанные кривые надстройки над языком. Мне питоньих аннотаций хватило, спасибо.
            Ответить
            • Говно какое.

              >ебал

              Ну слушай, в ЙАЖА код обмазывают аннотациями от JB, и они участвуют в компиляции и хоть и не ломают комиляцию, но генерят исключения в рантайме и слабенькие варнинги от IDE. Хоть чтото

              Хотя по уму конечно такой хуйни быть не должно. В коко такой проблемы нет. В расте нет. Даже наверное в крестах нету, если не пирдолица с дикими указателями.
              Ответить
        • > #nullable enable
          – был разговор с одним шарпеем недавно, он реально не мог понять, а зачем оно надо, лол
          Ответить
          • Жаваебы до сих пор не понимают, как и про var.
            Тупые-с.
            Ответить
    • throw new ArgumentNullException(null, null)
      Ответить
    • ааа

      This constructor is called during deserialization to reconstitute the exception object transmitted over a stream. For more information, see XML and SOAP Serialization.

      тут просто в сосднем отделе написали свою реализацию квадратново колеса
      Ответить

    Добавить комментарий