Application Cunstructor中的异常

时间:2016-01-06 18:41:06

标签: exception javafx

我想用javaFX(Snake游戏)编写代码但是现在还没有完成,因为它还没有考虑<?php $servername = "localhost"; $username = "myusername"; $password = "mypassword"; try { $conn = new PDO("mysql:host=$servername;dbname=mydatabase", $username, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { echo "Connection failed: " . $e->getMessage(); } // strip tags may not be the best method for your project to apply extra layer of security but fits needs for this tutorial $search = strip_tags(trim($_GET['q'])); // Do Prepared Query $query = $conn->prepare(" SELECT * FROM ( SELECT wp_terms.name FROM wp_terms JOIN wp_term_taxonomy ON wp_term_taxonomy.term_id = wp_terms.term_id WHERE taxonomy = 'job_listing_region' AND count = 0 ) as T" ); // Add a wildcard search to the search variable $query->execute(array(':search'=>"%".$search."%")); // Do a quick fetchall on the results $list = $query->fetchall(PDO::FETCH_ASSOC); // Make sure we have a result if(count($list) > 0){ foreach ($list as $key => $value) { $data[] = array('id' => $value['name'], 'text' => $value['name']); } } else { $data[] = array('id' => '0', 'text' => 'No Products Found'); } // return the result in json echo json_encode($data); 。我写了这个,它不是面向对象的。当我对它进行排序并尝试使其面向对象时(完全使用正确运行的最后一个代码),它会抛出 static void Main() { WindowsPrincipal pricipal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); bool hasAdministrativeRight = pricipal.IsInRole(WindowsBuiltInRole.Administrator); if (!hasAdministrativeRight) { ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.UseShellExecute = true; startInfo.WorkingDirectory = Environment.CurrentDirectory; startInfo.FileName = Application.ExecutablePath; startInfo.Verb = "runas"; try { Process p = Process.Start(startInfo); Application.Exit(); } catch (System.ComponentModel.Win32Exception ex) { MessageBox.Show("This utility requires elevated priviledges to complete correctly.", "Error: UAC Authorisation Required", MessageBoxButtons.OK); // Debug.Print(ex.Message); return; } } else { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); }

例外是:

game Over

有人说我补充说:

Exception in Application constructor

添加之后,我得到一个新的例外:

Exception in Application constructor
Exception in thread "main" java.lang.NoSuchMethodException: Main_Snake.main([Ljava.lang.String;)
    at java.lang.Class.getMethod(Class.java:1819)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:125)

有人可以查看我的代码吗?

public static void main(String[] args) {
    launch(args);
}

1 个答案:

答案 0 :(得分:2)

启动应用程序时,它会创建Main_Snake的实例(因为那是Application类。

您的Main_Snake类有一个名为snake的{​​{1}}字段(实例变量),该字段已内联初始化为新的Snake实例:

Snake

您的public class Main_Snake extends Application { Snake snake = new Snake(); // ... } 类是Snake的子类(为什么?):

Main_Snake

这意味着它继承了public class Snake extends Main_Snake { ... } 的所有字段和方法。因此,当您创建新的Main_Snake实例时,它会初始化Snake中定义的所有字段,以及从Snake继承的所有字段。特别是,它创建了一个名为Main_Snake的{​​{1}}类型的新对象(因为该字段在超类snake中定义)。

所以,到目前为止,我们已经:

JavaFX在启动时创建Snake。作为创建Main_Snake的过程的一部分,创建了Main_Snake(因为Main_SnakeSnake)。

作为创建Main_Snake的过程的一部分,我们会创建一个新的SnakeSnake继承自Snake)。

作为创建Snake对象(记住继承自Main_Snake)的过程的一部分,创建了一个新的Snake

作为创建Main_Snake对象(记住继承自Snake)的过程的一部分,创建了一个新的Snake

我认为现在你开始看到问题......

我无法告诉你如何解决这个问题,因为我不知道为什么你希望Main_Snake成为Snake的子类。但是,您不能同时Snake初始化新Main_SnakeMain_SnakeSnake的子类。