<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FLanguage_Basics%2FAssert</id>
		<title>Java/Language Basics/Assert - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FLanguage_Basics%2FAssert"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Language_Basics/Assert&amp;action=history"/>
		<updated>2026-04-21T23:24:18Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Language_Basics/Assert&amp;diff=7481&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Language_Basics/Assert&amp;diff=7481&amp;oldid=prev"/>
				<updated>2010-06-01T06:46:48Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:46, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Language_Basics/Assert&amp;diff=7480&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Language_Basics/Assert&amp;diff=7480&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:45Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== A Program with Assertions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    assert args.length &amp;gt; 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assert with an informative message ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
//: c15:Assert2.java&lt;br /&gt;
// {JVMArgs: -ea}&lt;br /&gt;
// {ThrowsException}&lt;br /&gt;
// From &amp;quot;Thinking in Java, 3rd ed.&amp;quot; (c) Bruce Eckel 2002&lt;br /&gt;
// www.BruceEckel.ru. See copyright notice in CopyRight.txt.&lt;br /&gt;
public class Assert2 {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    assert false: &amp;quot;Here&amp;quot;s a message saying what happened&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Catch assert exception with message ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    try {&lt;br /&gt;
      assert argv.length &amp;gt; 0 : &amp;quot;my message&amp;quot;;&lt;br /&gt;
    } catch (AssertionError e) {&lt;br /&gt;
      String message = e.getMessage();&lt;br /&gt;
      System.out.println(message);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Class for checking syntax and comments for the assert ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
/*&lt;br /&gt;
 *     file: Assertions.java&lt;br /&gt;
 *  package: oreilly.hcj.review&lt;br /&gt;
 *&lt;br /&gt;
 * This software is granted under the terms of the Common Public License,&lt;br /&gt;
 * CPL, which may be found at the following URL:&lt;br /&gt;
 * http://www-124.ibm.ru/developerworks/oss/CPLv1.0.htm&lt;br /&gt;
 *&lt;br /&gt;
 * Copyright(c) 2003-2005 by the authors indicated in the @author tags.&lt;br /&gt;
 * All Rights are Reserved by the various authors.&lt;br /&gt;
 *&lt;br /&gt;
########## DO NOT EDIT ABOVE THIS LINE ########## */&lt;br /&gt;
&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import java.util.Arrays;&lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
/**  &lt;br /&gt;
 * Class for checking syntax and comments for the assert section of the review chapter.&lt;br /&gt;
 *&lt;br /&gt;
 * @author &lt;br /&gt;
 */&lt;br /&gt;
public class Assertions {&lt;br /&gt;
  /** &lt;br /&gt;
   * Main method.&lt;br /&gt;
   *&lt;br /&gt;
   * @param args Command line arguments.&lt;br /&gt;
   */&lt;br /&gt;
  public static void main(final String[] args) {&lt;br /&gt;
    helperParseArgs(args);&lt;br /&gt;
    Iterator iter = System.getProperties()&lt;br /&gt;
                        .keySet()&lt;br /&gt;
                        .iterator();&lt;br /&gt;
    for (String key = null; iter.hasNext(); key = (String)iter.next()) {&lt;br /&gt;
      assert (key != null);&lt;br /&gt;
      System.out.println(key + &amp;quot;=&amp;quot; + System.getProperty(key));&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /** &lt;br /&gt;
   * __UNDOCUMENTED__&lt;br /&gt;
   *&lt;br /&gt;
   * @param event __UNDOCUMENTED__&lt;br /&gt;
   */&lt;br /&gt;
  public void mouseClicked(final MouseEvent event) {&lt;br /&gt;
    Object source = event.getSource();&lt;br /&gt;
    assert (source != null);&lt;br /&gt;
    // ... do code using source&lt;br /&gt;
  }&lt;br /&gt;
  /** &lt;br /&gt;
   * __UNDOCUMENTED__&lt;br /&gt;
   *&lt;br /&gt;
   * @param args __UNDOCUMENTED__&lt;br /&gt;
   *&lt;br /&gt;
   * @throws IllegalArgumentException __UNDOCUMENTED__&lt;br /&gt;
   */&lt;br /&gt;
  protected static void helperParseArgs(final String[] args) {&lt;br /&gt;
    assert (args != null);&lt;br /&gt;
    assert (!Arrays.asList(args)&lt;br /&gt;
                   .contains(null));&lt;br /&gt;
    // --&lt;br /&gt;
    List arglist = Arrays.asList(args);&lt;br /&gt;
    Iterator iter = arglist.iterator();&lt;br /&gt;
    for (String argument = null; iter.hasNext(); argument = (String)iter.next()) {&lt;br /&gt;
      if (argument.startsWith(&amp;quot;-D&amp;quot;)) {&lt;br /&gt;
        if (argument.length() &amp;lt; 3) {&lt;br /&gt;
          int idx = arglist.indexOf(argument);&lt;br /&gt;
          throw new IllegalArgumentException(&amp;quot;Argument&amp;quot; + idx&lt;br /&gt;
                                             + &amp;quot; is not a legal property argument.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        int valueIdx = argument.indexOf(&amp;quot;=&amp;quot;);&lt;br /&gt;
        System.setProperty(argument.substring(2, valueIdx),&lt;br /&gt;
                           argument.substring(valueIdx + 1));&lt;br /&gt;
        assert (System.getProperty(argument.substring(2, valueIdx)).equals(argument&lt;br /&gt;
                                                                           .substring(valueIdx&lt;br /&gt;
                                                                                      + 1)));&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /** &lt;br /&gt;
   * __UNDOCUMENTED__&lt;br /&gt;
   *&lt;br /&gt;
   * @param args __UNDOCUMENTED__&lt;br /&gt;
   *&lt;br /&gt;
   * @throws IllegalArgumentException __UNDOCUMENTED__&lt;br /&gt;
   */&lt;br /&gt;
  protected static void helperParseArgs2(final String[] args) {&lt;br /&gt;
    assert (args != null);&lt;br /&gt;
    assert (!Arrays.asList(args)&lt;br /&gt;
                   .contains(null));&lt;br /&gt;
    // --&lt;br /&gt;
    List arglist = Arrays.asList(args);&lt;br /&gt;
    Iterator iter = arglist.iterator();&lt;br /&gt;
    for (String argument = null; iter.hasNext(); argument = (String)iter.next()) {&lt;br /&gt;
      if (argument.startsWith(&amp;quot;-D&amp;quot;)) {&lt;br /&gt;
        if (argument.length() &amp;lt; 3) {&lt;br /&gt;
          int idx = arglist.indexOf(argument);&lt;br /&gt;
          throw new IllegalArgumentException(&amp;quot;Argument&amp;quot; + idx&lt;br /&gt;
                                             + &amp;quot; is not a legal property argument.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        int valueIdx = argument.indexOf(&amp;quot;=&amp;quot;);&lt;br /&gt;
        String key = argument.substring(2, valueIdx);&lt;br /&gt;
        String value = argument.substring(valueIdx + 1);&lt;br /&gt;
        System.setProperty(key, value);&lt;br /&gt;
        assert (System.getProperty(key).equals(value));&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/* ########## End of File ########## */&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enabling Assertions from the Command Line: -ea and -da enable and disable assertion in a package subtree or in a class. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
java -ea MyApp&lt;br /&gt;
java -ea:... MyApp&lt;br /&gt;
java -ea:com.mycompany... MyApp&lt;br /&gt;
java -ea:com.mycompany... -da:com.mycompany.MyClass MyApp&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Handling an Assertion Error ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    try {&lt;br /&gt;
      assert argv.length &amp;gt; 0;&lt;br /&gt;
    } catch (AssertionError e) {&lt;br /&gt;
      String message = e.getMessage();&lt;br /&gt;
      System.out.println(message);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Non-informative style of assert ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
//: c15:Assert1.java&lt;br /&gt;
// Non-informative style of assert&lt;br /&gt;
// Compile with: javac -source 1.4 Assert1.java&lt;br /&gt;
// {JVMArgs: -ea} // Must run with -ea&lt;br /&gt;
// {ThrowsException}&lt;br /&gt;
// From &amp;quot;Thinking in Java, 3rd ed.&amp;quot; (c) Bruce Eckel 2002&lt;br /&gt;
// www.BruceEckel.ru. See copyright notice in CopyRight.txt.&lt;br /&gt;
public class Assert1 {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    assert false;&lt;br /&gt;
  }&lt;br /&gt;
} ///:~&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using the class loader to enable assertions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
// : c15:LoaderAssertions.java&lt;br /&gt;
//Using the class loader to enable assertions&lt;br /&gt;
//Compile with: javac -source 1.4 LoaderAssertions.java&lt;br /&gt;
//{ThrowsException}&lt;br /&gt;
//From &amp;quot;Thinking in Java, 3rd ed.&amp;quot; (c) Bruce Eckel 2002&lt;br /&gt;
//www.BruceEckel.ru. See copyright notice in CopyRight.txt.&lt;br /&gt;
public class LoaderAssertions {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    ClassLoader.getSystemClassLoader().setDefaultAssertionStatus(true);&lt;br /&gt;
    new Loaded().go();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class Loaded {&lt;br /&gt;
  public void go() {&lt;br /&gt;
    assert false: &amp;quot;Loaded.go()&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
///:~&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>