Đoạn mã KivaKit #11

Jan 04 2023
Tìm hiểu thêm về KivaKit https://state-of-the-art.org/https://www.
Mã số

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) ┋ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Tìm hiểu thêm về KivaKit

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

Những bài viết liên quan

Đoạn mã KivaKit #1
Đoạn mã KivaKit #2
Đoạn mã KivaKit #3

Sáu lý do tại sao hầu hết Java bạn đã thấy không phải là Java thực
Tại sao máy chủ không phải là chuỗi và cổng không phải là số nguyên
Số nguyên không phải là số đếm
Mọi thứ đều được phân chia và chinh phục