LINUX.ORG.RU

Обработка исключительных ситуаций в няшной Сишке


2

9

вы мне тут говорили, что Си это хорошо.

Но я не обнаружил в моем компиляторе try.

а бейсик таки поддерживает: ON ERROR GOSUB ....

керниган и ричи, таки не осилили то, что сделали студенты из дармутского колледжа...

а это ведь важнее локальных переменных, да.

Перемещено mono из talks

мне тут говорили, что Джава это хорошо. Но я не обнаружил в моем компиляторе указателей. А C таки поддерживает: int *ptr ... Ънтерпрайзные мегапрограммисты таки не осилили то, что сделали два хакера из Bell Labs. а это ведь важнее абстрактных фабрик абстрактных визиторов, да.

rand
()
Ответ на: комментарий от djenterprise

Слишком много деталей будет скрыто, создатели C очевидно этого и не хотели.

amaora ★★
()
Ответ на: комментарий от djenterprise

Какая убогая реализация обработки исключений... Даже в 1С лучше реализована.

delete83 ★★
()
Ответ на: комментарий от chelovek-bugurt

Ты дебил. Такой мрази, как ты, программировать вообще нельзя.

anonymous
()
Ответ на: комментарий от djenterprise
#define NULL 0
void * Exception = NULL;
#define try Exception = NULL; do
#define throw(X) if(true) {Exception = &X; break;}
#define catch(X) while(0); if (Exception != 0)

try {
 throw("Error");
} catch() {
  printf("Error: %s", (char*)Exception); 
}

А внутри C библиотек всё работает на возвращаемых результатах. Тем более в «приборах». 1/0 вполне нормальная операция для MK. Её результат 0.

vahtu
()
Ответ на: комментарий от agentgoblin

И если уж goto так вреден, какого чёрта его пихают во все подряд языки?

Хотя бы потому что каждый уважающий себя процессор поддерживает соответствующую машинную инструкцию.

d ★★★★
()
Ответ на: комментарий от anonymous

ТС просил только видимости. Как в васике. Он даже пример привёл. Что не так-то? Конечно вложенные делать нельзя. Всё должно быть в пределах одного блока и т.д. Но зато как выглядит. Особенно если спрятать определения подальше.

vahtu
()
Ответ на: комментарий от chelovek-bugurt

скажи это людям, которые разрабатывают корпоративные транснационалъные приложения в яп, где естъ толъко goto gosub

djenterprise
() автор топика

Как мне говорили, в GOTO ничего плохого нет, просто не нужно им пользоваться, где это не уместно.

ViTeX ★★★★
()
Ответ на: комментарий от djenterprise

Это я написал от фонаря. Но идея, думаю понятна. Ошибки чтоле выдаёт? Мы всё ещё говорим об embedded, или я тебя неправильно понял?

vahtu
()
Ответ на: комментарий от djenterprise

Крутятся то крутятся. А обезьянки копроративные программисты рассуждают на лоре о васике.

vahtu
()
Ответ на: комментарий от chelovek-bugurt

с этим goto можно уменьшить глубину стека в рекурсивных функцих

Chubakur ★★
()
Ответ на: комментарий от vahtu

А там это не будет действовать при GOSUB? Тогда действительно в бейсике ниочём.

vzzo ★★★
()

вы мне тут говорили, что Си это хорошо.

Ты что-то неправильно понял или тебя хотели надуть. За бейсиком будущее.

const86 ★★★★★
()

а бейсик таки поддерживает: ON ERROR GOSUB ....

керниган и ричи, таки не осилили то, что сделали студенты из дармутского колледжа...

это не нужно в С - то что позволено низкоквалифицированным программистам пишущим энтерпрайз на бейсиках и прочих явах в С недопустимо. Обработчик исключения «деление на ноль» есть в ОС нужен опять же для бейсиков и прочей дребедени, там где нет ОС - пишется свой или используется из рантайма компилятора, например для arm

*
 * ARM EABI toolchain needs divide by zero handler to be implemented
 * externally.
 */
        .globl  __div0
__div0:
        mov     pc, lr
        .globl  __aeabi_unwind_cpp_pr0
__aeabi_unwind_cpp_pr0:
        mov     pc, lr
anonymous
()
Ответ на: комментарий от chelovek-bugurt

Goto превращает логику программы в запутанное говно, хоть как ты его осиливай. Если программист употребляет goto, значит, он не умеет обращаться с алгоритмами.

своему учителю информатике в школе будешь так отвечать - получишь пять, а тут не надо

Waterlaz ★★★★★
()
Ответ на: комментарий от djenterprise

Так вот почему биржи одна за другой «испытывают технические трудности» ? :)

qrck ★★
()
Ответ на: комментарий от chelovek-bugurt

Goto превращает логику программы в запутанное говно, хоть как ты его осиливай.

Устами говно-программиста. И его же руками говно-программы.

tensai_cirno ★★★★★
()
Ответ на: комментарий от ymn

Когда давным давно Дэйкстра настрочил Go to considered harmful. И пошло поехало.

tensai_cirno ★★★★★
()
Ответ на: комментарий от amaora

Там можно было вернуть оба значения через регистры, а здесь нельзя.

Здесь тоже ничего не мешает: и то, и другое - сахар для «DoSomething(&result, &err)».

unsigned ★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Его херр Эдсгер насмерть запугал, что ли?

Сам по себе goto не более страшен, чем автомат Калашникова. Главное то, в чьих руках находится оружие. И в том, и в другом случае.

DeVliegendeHollander ★★
()
Ответ на: комментарий от anonymous

Сделай уже себе вдоль, придурок

Я рад, что у тебя всё хорошо. :)

pacify ★★★★★
()
Ответ на: комментарий от chelovek-bugurt


Goto превращает логику программы в запутанное говно, хоть как ты его осиливай. Если программист употребляет goto, значит, он не умеет обращаться с алгоритмами.


кто там остался недоволен большим количеством goto в коде ядра Linux'a?... bugurt, ты штоль? а-ну, перелогинься обратно! %)

metawishmaster ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

у меня учитель информатики говорил что за каждое goto минус балл, написал goto пару раз - тройбан :)

Это ничего не говорит. Учителя разные бывают. Вот например у меня заруба была когда-то с преподом - он утверждал что применение баз данных dbf (да, это было очень давно) ограничено объёмом памяти. На что я его резонно посылал в виртуальную память и в целом не понимал в каком месте оно ограничено. Ну, поскольку дело происходило на экзамене, у меня трояк по тому предмету нарисовался. Короче не надо слушать этих мудаков-преподов, шантажирующих несчастных студентов оценкаи, даже если они и правы, как в описанном тобой случае. Думай своей головой, приводи аргументацию. А то из твоей фразы даже непонятно что ты сам-то хотел сообщить: надо гоуту использовать или нет?

anonymous
()
Ответ на: комментарий от I-Love-Microsoft

Писали, я надеюсь, вы на APL'е? Или просто ваш учитель был некомпетентен?

aedeph_ ★★
()

Вопросы о «няшной сишке» могут задавать только умственно отсталые, а им бесполезны ответы. По причине умственной отсталости.

tailgunner ★★★★★
()
Ответ на: комментарий от tensai_cirno

Да хоть как ты оскорбляйся и сыпь проклятиями. Код программы имеет одно или два измерения, а goto плодит кротовые норы. Не, конечно, наговнокодить и забыть можно, но сопровождать это спагетти даже высококвалифицированному программисту будет сложно. А что касается вас, бугуртящих в этой теме насчёт goto, ну и пользуйтесь им, кто вам запрещает? Только не нужно выдавать это за показатель мастерства. Подумаешь, говнокодер! Где сейчас высококачественных программистов найти можно?

chelovek-bugurt
()
Ответ на: комментарий от chelovek-bugurt

Если ты не знаешь, что такое «кротовая нора» в физике, то посмотри в Гугле.

Я знаю. Но вот каким определением пользуешься ты - ХЗ.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Стандартным определением. Если ты знаешь как посредством goto можно НЕ создать кротовую нору, то покажи мастер-класс, я только рад буду.

chelovek-bugurt
()
Ответ на: комментарий от chelovek-bugurt

Если ты не знаешь, что такое «кротовая нора» в физике, то посмотри в Гугле.

Я знаю. Но вот каким определением пользуешься ты - ХЗ.

Стандартным определением.

Стандартным определением Человека-Бугурта? Это всё объясняет.

tailgunner ★★★★★
()
Ответ на: комментарий от chelovek-bugurt

чувак, а ты упертый :)

то что ты тут лопочешь о «кротовых норах» говорит не только о том, что ты не умеешь пользоваться goto так, чтобы не создать эту норку. ну и разбираться в чужом коде не умеешь.

но, если честно, думается ты ни в чем круче Бейсика норки строить не пробовал.

P.S. Я в школе тоже был уверен, что goto - это зло. И на первых курсах Универа... но потом как-то попустило :)

metawishmaster ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.