Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Online Artikel  »  Vala im Detail  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

Ausnahme-Behandlung

In Vala beruht die Ausnahme-Behandlung auf "GError". Mit den bekannten "try/catch"-Blöcke kommt auch diese Sprache zurecht:

try {
    do_something_stupid();
catch (StupidError exc) {
    // handle StupidError
}

Sofern Sie das umgebende "try/catch"-Paar vergessen, warnt Sie der Compiler Spätestens beim Ausführen stürzt das Programm dann gegebenenfalls ab.

Weitere Sprachfeatures

Um Vala in aller Ausführlichkeit zu erklären, müsste man wohl schon fast ein Buch darüber schreiben. Drei Features der Sprache seien der Vollständigkeit halber noch erwähnt: "public static delegate void Funktionszeiger()" deklariert einen Funktionszeiger. Die "Delegates" finden Anwendung bei der Übergabe und beim Aufruf von Funktionszeigern. Dekoratoren, die Sie vielleicht schon aus anderen Sprachen, darunter C# kennen, existieren ebenso in Vala. Gängig sind unter anderem:

  • [Flags]: Definieren von Flags.
  • [ErrorDomain]: Deklarieren von Ausnahmen, was in etwa so aussieht:
[ErrorDomain]
public enum MyError {
    ILLEGAL_CONVERSION,
    FAILED,
    ...
}

Exceptions sind feingradiger durch "catch (MyError.FAILED exc)" abzufangen und ermöglichen damit eine bessere Behandlung.

Mit Aufzählungen ("enum") schließt Vala die Lücke zu C(++) und C#. Im Moment ist es leider noch nicht möglich, Aufzählungen in einer Klasse zu definieren. Es bleibt nur der Umweg, sie außerhalb zu notieren (Listing 6):

Listing 6: Aufzählungen

public enum MyEnum {
    ELEM1,
    ELEM2,
    ...,
}

public Klasse : Object {

    ...

    void do_something(MyEnum me) {
        switch (me) {
            case MyEnum.ELEM1:
                ...
            case MyEnum.ELEM2:
                ...
            default:
                ...
        }

    ...
}

Vala ist schon heute eine lohnenswerte Alternative zu reinem GObject-/C-Code, wenn es darum geht, sauberen und verständlichen Code zu schreiben. Für die Zukunft verspricht der Autor weitere Features wie das Ableiten von Strukturen, Aufzählungen innerhalb von Klassen und Fehlerbereinigungen am Compiler. Anhand des C-Codes können Sie sich ein Bild machen, was Vala im Hintergrund alles für Sie erledigt. Und das kann sich in der aktuellen Version bereits sehen lassen ( mhu).

Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Whitepaper
The Role of Open Source in Data Integration

Obwohl in den letzten Jahren viele technische Fortschritte erzielt werden konnten, verfügen die meisten Datenintegrationsprozesse nach wie vor nur über eine sehr begrenzte Automatisierung. Das vorliegende White Paper von dem Industry Analyst Mark Madson wird zunächst ein grundlegendes Verständnis von Daten Integration vermitteln, die Vorzüge von Open Source Lösungen für Daten Integration erläutern und Ihnen professionelle Empfehlungen geben, damit Sie Ihre Integrationsjobs noch einfacher und produktiver gestalten können.

Download PDF (Registrierung erforderlich)
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele (Folge 2)

Der zweite Teil des Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele White Papers beleuchtet anhand weiterer ausgewählter Case Studies die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.

Download PDF (Registrierung erforderlich)
Kommentare (2)
von
Matthias,
03.05.2010 20:08
Vala lernen
Hallo zusammen,

Ich würde mir weitere Beiträge zu Vala wünschen. Es gibt einfach zu wenige Howtos und Beiträge zu Vala. Vala findet noch nicht die Beachtung die es verdient.

mfg Matthias
von
carina,
18.02.2010 11:06
hallo
ich will diese sprache endlich lernen bloß ich check es einfach kein bischen und ich wünsche mir wenn ihr mir hilft.

In Liebe Grüße Carina