Cuplikan KivaKit #11

Jan 04 2023
Lebih lanjut tentang KivaKit https://state-of-the-art.org/https://www.
Kode

package com.telenav.kivakit.snippets;

import com.telenav.kivakit.core.language.trait.TryTrait;
import com.telenav.kivakit.core.messaging.listeners.MessageList;

import static com.telenav.kivakit.core.collections.list.StringList.stringList;

public class Snippet11 extends BaseSnippet implements TryTrait
{
    public static void main(String[] args)
    {
        new Snippet11().run();
    }

    @Override
    protected Object onSnippet()
    {
        var issues = new MessageList();
        var results = stringList();

        issues.listenTo(this);

        // 1, 2
        results.add("x = " + tryCatch(this::x));
        results.add("y = " + tryCatch(this::y));

        // 3, 4
        results.add("x = " + tryCatchDefault(this::x, -1));
        results.add("y = " + tryCatchDefault(this::y, -1));

        // 5, 6
        results.add("x = " + tryCatch(this::x, "Failed to x()"));
        results.add("y = " + tryCatch(this::y, "Failed to y()"));

        // 7
        results.addAll(issues.formatted());
        issues.clear();

        // 8
        results.add("x = " + tryCatchThrow(this::x, "Failed to x(): rethrowing"));
        try
        {
            results.add("y = " + tryCatchThrow(this::y, "Failed to y(): rethrowing"));
        }
        catch (Exception e)
        {
            // 9
            results.add("Caught rethrown exception");
        }

        // 10
        results.addAll(issues.formatted());
        issues.clear();

        return results.numbered().titledBox("Results");
    }

    private int x()
    {
        return 3;
    }

    private int y()
    {
        throw new IllegalStateException("Error in y()");
    }
}



      
                
Output
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ Results ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┋ 1. x = 3 ┋ ┋ 2. y = null ┋ ┋ 3. x = 3 ┋ ┋ 4. y = -1 ┋ ┋ 5. x = 3 ┋ ┋ 6. y = null ┋ ┋ 7. Failed to y(): Error in y() ┋ ┋ Exception in thread "main"java.lang.IllegalStateException: Error in y() ┋ ┋ at com.telenav.kivakit.snippets.Snippet11.y(Snippet11.java:66) ┋ ┋ at com.telenav.kivakit.core.language.trait.TryTrait.tryCatch(TryTrait.java:67) ┋ ┋ at com.telenav.kivakit.snippets.Snippet11.onSnippet(Snippet11.java:33) ┋ ┋ at com.telenav.kivakit.snippets.BaseSnippet.run(BaseSnippet.java:10) ┋ ┋ at com.telenav.kivakit.snippets.Snippet11.main(Snippet11.java:12) ┋ ┋ 8. x = 3 ┋ ┋ 9. Caught rethrown exception ┋ ┋ 10. Failed to y(): rethrowing: Error in y() ┋ ┋ Exception in thread "main"java.lang.IllegalStateException: Error in y() ┋ ┋ at com.telenav.kivakit.snippets.Snippet11.y(Snippet11.java:66) ┋ ┋ at com.telenav.kivakit.core.language.trait.TryTrait.tryCatchThrow(TryTrait.java:11 ┋ ┋ 2) ┋ ┋ at com.telenav.kivakit.snippets.Snippet11.onSnippet(Snippet11.java:44) ┋ ┋ at com.telenav.kivakit.snippets.BaseSnippet.run(BaseSnippet.java:10) ┋ ┋ at com.telenav.kivakit.snippets.Snippet11.main(Snippet11.java:12) ┋ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Lebih lanjut tentang KivaKit

https://state-of-the-art.org/
https://www.kivakit.org/

Artikel Terkait

Cuplikan KivaKit #1
Cuplikan KivaKit #2
Cuplikan KivaKit #3

Enam Alasan Mengapa Sebagian Besar Java yang Anda Lihat Bukan Java Asli
Mengapa Host Bukan String dan Port Bukan Integer
Integer Bukan Hitungan
Semuanya Membagi dan Menaklukkan