在Java中,我注意到我写的时候
int i = 99;
Run Code Online (Sandbox Code Playgroud)
它工作正常.但是,当我说
int i = 099;
Run Code Online (Sandbox Code Playgroud)
我得到一个例外:
java.lang.RuntimeException: Uncompilable source code - Erroneous tree type: <any>
Run Code Online (Sandbox Code Playgroud)
在我的IDE中,我看到一个红点说 integer number too large: 099.
为什么不编译?是不是099相当于99?
我使用maven来管理我的Web项目依赖.我将apache poi依赖项添加到我的pom文件中.它在编译时不显示错误.但是当它运行时,它会在我的MainApplication()类中抛出RuntimeException.虽然它给出了java.lang.NoClassDefFoundError:org/apache/poi/ss/usermodel/Workbook
我有一个MainApplication类.
public class MainApplication extends Application {
private Set<Class<?>> classes = new HashSet<Class<?>>();
HashSet<Object> singletons = new HashSet<Object>();
public MainApplication() {
try {
ClassPathXmlApplicationContext springContext = new ClassPathXmlApplicationContext("applicationContext.xml");
singletons.add(springContext.getBean("transformService", DataTransformService.class));
}
public Set<Class<?>> getClasses() {
return classes;
}
protected ApplicationContext springContext;
public Set<Object> getSingletons() {
return singletons;
}
Run Code Online (Sandbox Code Playgroud)
}
以下是我添加的内容
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.8-beta3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version> …Run Code Online (Sandbox Code Playgroud) 在我的代码中有一个巨大的问题,我在assets\fonts\自定义TextView类中加载我的文件夹中的字体.第一个问题是它在4.0设备上崩溃,但有例外Caused by: java.lang.RuntimeException: native typeface cannot be made.我在这里使用相同的过程:
public class MyTextView extends TextView {
public MyTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyTextView(Context context) {
super(context);
}
public void setTypeface(Typeface tf, int style) {
if (style == Typeface.BOLD) {
super.setTypeface(Typeface.createFromAsset(
getContext().getAssets(), "fonts/hirakakupronbold.ttf"));
} else if (style == Typeface.ITALIC) {
super.setTypeface(Typeface.createFromAsset(
getContext().getAssets(), "fonts/hirakakupronitalic.ttf"));
} else {
super.setTypeface(Typeface.createFromAsset(
getContext().getAssets(), "fonts/hirakakupron.ttf")); …Run Code Online (Sandbox Code Playgroud) android memory-leaks android-fonts runtimeexception inflate-exception
我必须用 StAX 解析 XML 文件。
我发现了一堆异常:
javax.xml.stream.XMLStreamException: java.net.MalformedURLException
at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.setInputSource(XMLStreamReaderImpl.java:217)
at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.<init>(XMLStreamReaderImpl.java:189)
at com.sun.xml.internal.stream.XMLInputFactoryImpl.getXMLStreamReaderImpl(XMLInputFactoryImpl.java:262)
at com.sun.xml.internal.stream.XMLInputFactoryImpl.createXMLStreamReader(XMLInputFactoryImpl.java:129)
at com.epam.lab.StaxXmlParser.<init>(StAXParserDemo.java:46)
at com.epam.lab.StAXParserDemo.main(StAXParserDemo.java:20)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.net.MalformedURLException
at java.net.URL.<init>(URL.java:619)
at java.net.URL.<init>(URL.java:482)
at java.net.URL.<init>(URL.java:431)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:610)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1290)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDocumentEntity(XMLEntityManager.java:1242)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.setInputSource(XMLDocumentScannerImpl.java:257)
at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.setInputSource(XMLStreamReaderImpl.java:204)
Run Code Online (Sandbox Code Playgroud)
这是 xml 文件的外观:
<?xml version="1.0" encoding="UTF-8"?>
<staff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="newEmployee.xsd">
<employee>
<name>Carl Cracker</name>
<salary>75000</salary>
<hiredate year="1987" month="12" day="15" />
</employee>
<employee>
<name>Harry Hacker</name>
<salary>50000</salary>
<hiredate year="1989" month="10" day="1" />
</employee>
<employee> …Run Code Online (Sandbox Code Playgroud) 我正在进行代码审查,我遇到了这个方法定义:
public void something() throws RuntimeException
Run Code Online (Sandbox Code Playgroud)
有没有合理的理由在Java中编写'throws RuntimeException'?
根据"Sams教你自己Java 21天"一书
"未经检查的异常,也称为运行时异常..."
在这个事实下,错误也是运行时异常,因为它们是未经检查的异常(或者它不是它所说的?)
这让我对以下陈述感到困惑.
运行时异常是Java运行时环境中的内部错误.
如果它讨论java RuntimeExceptions然后,它是假的,因为它们是异常,被描述为"异常描述由程序和外部环境引起的错误.这些错误可以由程序捕获和处理."
但另一方面,如果它引用java错误,则它们是内部错误.
那个陈述是完全正确还是错误?
我在使用 Windows 10 和 Composer(最新版本)时遇到问题。当我想在我的项目中执行命令“composer install”时,会抛出一个交响乐错误:
[Symfony\Component\Process\Exception\RuntimeException]
A temporary file could not be opened to write the process output to, verify that your TEMP environment variable is writable
Run Code Online (Sandbox Code Playgroud)
我的 TEMP 变量是“%USERPROFILE%\AppData\Local\Temp”。该文件夹存在且权限良好。
任何人都可以帮我找到问题吗?
谢谢你。
遇到RuntimeException流处理时,流处理是否应该中止?应该先完成吗?是否应重新抛出异常Stream.close()?异常是否被重新抛出或被包裹?Java Stream和java.util.stream包的JavaDoc 无话可说.
我发现的所有关于Stackoverflow的问题似乎都集中在如何从功能界面中包装已检查的异常以便编译代码.事实上,互联网上的博客文章和类似文章都集中在同一个警告上.这不是我关心的问题.
我根据自己的经验知道,一旦抛出一个顺序流的处理就会中止,RuntimeException并且这个异常会按原样重新抛出.仅当客户端线程抛出异常时,对于并行流才是相同的.
但是,此处的示例代码演示了如果在并行流处理期间由"工作线程"(=与调用终端操作的线程不同的线程)抛出异常,则此异常将永远丢失并且流处理完成.
示例代码将首先IntStream并行运行.然后是"正常" Stream并行.
这个例子将表明,
1)IntStream如果遇到RuntimeException,则中止并行处理没有问题.异常被重新抛出,包装在另一个RuntimeException中.
2)Stream不好玩.实际上,客户端线程永远不会看到抛出的RuntimeException的痕迹.流不仅完成处理; 将处理更多元素而不是limit()指定的元素!
在示例代码中,IntStream使用IntStream.range()生成."正常" Stream没有"范围"的概念,而是由1:s组成,但调用Stream.limit()将流限制为10亿个元素.
这是另一个转折点.生成IntStream的示例代码执行如下操作:
IntStream.range(0, 1_000_000_000).parallel().forEach(..)
Run Code Online (Sandbox Code Playgroud)
将其更改为生成的流,就像代码中的第二个示例一样:
IntStream.generate(() -> 1).limit(1_000_000_000).parallel().forEach(..)
Run Code Online (Sandbox Code Playgroud)
此IntStream的结果是相同的:异常被包装并重新抛出,处理中止.但是,第二个流现在也将包装并重新抛出异常,而不是处理超出限制的元素!因此:更改第一个流的生成方式会对第二个流的行为产生副作用.对我来说,这很奇怪.
ForkJoinPool.invoke()的 JavaDoc 并ForkJoinTask表示异常被重新抛出,这就是我对并行流的期望.
当处理并行流中的元素时,我遇到了这个"问题" Collection.stream().parallel()(我还没有验证它的行为,Collection.parallelStream()但它应该是相同的).发生的事情是"工作线程"崩溃然后静静地离开,而所有其他线程成功完成了流.我的应用程序使用默认的异常处理程序将异常写入日志文件.但是甚至没有创建这个日志文件.线程和他的例外根本就消失了.由于我需要在捕获运行时异常时立即中止,因此一种替代方法是编写将此异常泄漏给其他工作程序的代码,使其在任何其他线程抛出异常时不愿意继续.当然,这并不能保证流实现只是继续生成尝试完成流的新线程.所以我可能最终不会使用并行流,而是使用线程池/执行器进行"正常"并发编程.
这表明运行时异常丢失的问题不会与使用流Stream.generate()或流生成的流隔离Stream.limit().最重要的是,我很想知道...是预期的行为?
java parallel-processing multithreading runtimeexception java-stream
我不能使用空矢量 drawable 作为占位符:
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:viewportWidth="164.891"
android:viewportHeight="75.543"
android:width="164.891dp"
android:height="75.543dp"></vector>
Run Code Online (Sandbox Code Playgroud)
Android Studio 没有指出 Activity 预览中的任何渲染问题,但在运行时我得到了这个致命的异常:
Caused by: android.view.InflateException: Binary XML file line #22: Binary XML file line #22: Error inflating class ImageView
Caused by: android.view.InflateException: Binary XML file line #22: Error inflating class ImageView
Caused by: android.content.res.Resources$NotFoundException: Drawable com.xxxx.yyyy:drawable/product_logo_image with resource ID #0x7f080121
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/product_logo_image.xml from drawable resource ID #0x7f080121
Run Code Online (Sandbox Code Playgroud) android runtimeexception android-resources android-vectordrawable
我在 Katalon Selenium IDE 中使用以下 java 代码。
import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.ui.*;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
public static void setUp() throws Exception {
System.setProperty("webdriver.chrome.driver", "C:\\Users\\myuser\\Downloads\\chromedriver_win32\\chromedriver.exe");
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
}
public static void testQScan() throws Exception {
driver.get("https://qualysguard.myorg.com/fo/login.php?idm_key=saml2_78743hhh43");
WebElement element = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@id='userNameInput']")));
System.out.println("Title of the page is 8 -> " + driver.getTitle());
driver.findElement(By.linkText("Scans")).click();
System.out.println("Title of the page …Run Code Online (Sandbox Code Playgroud) runtimeexception ×10
java ×6
android ×2
apache-poi ×1
composer-php ×1
excel ×1
html ×1
int ×1
java-stream ×1
memory-leaks ×1
selenium ×1
stax ×1
throws ×1
windows ×1
xml ×1
xml-parsing ×1