Powracam do tematu, ale w trochę innej formie.
Wszystkie funkcje mają już pewną obsługę, wyrzucają błędy tylko... no właśnie, jeszcze nie wiem gdzie mają je wyrzucać. Stworzyłem specjalną klasę do obsługi tego, wraz z identyfikatorami i przypisanymi tekstowymi błędami, co pozwoli później na ewentualne łatwe przygotowanie innej wersji językowej (polskiej
). Co jest problemem...
Wcześniej każda funkcja zwracała albo String^ z informacjami od funkcji albo ewentualny błąd z klasy błędów (static Error class), ale teraz zauważyłem, że to zły pomysł, bo niektóre funkcje nie zwracają typu String^, a jakieś własne tablice danego typu.
Jak na razie wykombinowałem, że można zmodyfikować klasę Error, żeby zawierała pewne dodatkowe funkcje, np.
Error::AddErrorMessage("Wiadomość", typ);
Bardzo przydatne byłoby np. informacja z klasy od której błąd pochodzi. To przy okazji obsłużyło by globalny Log programu. Oczywiście miejsce na przechowywanie to jakiś stos lub lista.
Co o tym myślicie ? Ma ktoś jakiś lepszy pomysł ?
C# nie ma tego problemu, throw exception i tyle...
Przy okazji, miałem zapytać jeszcze o coś.
Void break_()
{
/// jakiś kod
}
void while_()
{
int i = 0;
while (1)
{
i++;
if (i == 10) break_();
}
}
Pytanie: Czy funkcja break_ może przerwać pętle w której została wywołana ? Czyli, czy można tak napisać tą funkcję break_, że gdy zostanie wywołana w pętli funkcji w której została wywołana(czyli while_()) - przerwie ją ?
Jeśli nie zrozumiałe... Czy funkcja break_() może zawierać break; który przerwie pętlę jeśli funkcja została w niej wywołana ?
----
Jeśli chodzi o to pierwsze, to w sumie już nie ważne. Wspomogłem się nullptr. No chyba, że ktoś ma jakiś na prawdę błyskotliwy pomysł ; )