КиваКит Фрагмент #11
Jan 04 2023
Подробнее о KivaKit https://state-of-the-art.org/https://www.
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) ┋
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Подробнее о КиваКит
https://state-of-the-art.org/
https://www.kivakit.org/
Статьи по Теме
KivaKit Фрагмент #1
KivaKit Фрагмент #2
KivaKit Фрагмент #3
Шесть причин, почему большая часть Java, которую вы видели, не является настоящей Java
Почему хост не является строкой, а порт не целым числом
Целое число не является счетом
Все по принципу «разделяй и властвуй»

![В любом случае, что такое связанный список? [Часть 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































