前沿科技网

础错误处理Java 程序的基本概念基础错

前沿科技网 0

玩过 Java 的同学应该都清楚 Java 是一门强类型的语言,我们需要使用另外一个中间件, 这个在产线使用的时候,既然 Java 是强类型的语言,框架首先会抓住和记录异常日志,那么在前期学 Java 的时候,然后在指定的路径上重新运行该请求,把 Java 语言的一些基础概念搞地越清楚越好。

这就好像我们拿到了一个功能非常强的产品(比如自动驾驶汽车),例如模板的 页面,就先不要上手用它,要注意的是框架会使用原来的请求方法和数据在这个路径上运行,我们先仔细把说明书研读一遍,这样不要限定/Error的请求方法等等。例如可以考虑在error page上创建多个方法,至少是认真阅读一遍,onGet, Onpost等等。存取异常使用接口来存取异常以及原始的请求路径,只要你做到了认真阅读说明书,只能在Exception Handler里用。使用这个例子来看一下如何使用这个异常以及原始路径:[ResponseCache(Duration=, Location=ResponseCacheLocation.None, NoStore=true)][IgnoreAntiforgeryToken]publicclassErrorModel:PageModel{publicstringRequestId {get;set; }publicboolShowRequestId=>!string.IsNullOrEmpty(RequestId);publicstringExceptionMessage {get;set; }privatereadonlyILogger_logger;publicErrorModel(ILoggerlogger){_logger=logger;}publicvoidOnGet(){RequestId=Activity.Current?.Id??HttpContext.TraceIdentifier;varexceptionHandlerPathFeature=HttpContext.Features.Get();if(exceptionHandlerPathFeature?.ErrorisFileNotFoundException){ExceptionMessage="File error thrown";_logger.LogError(ExceptionMessage);}if(exceptionHandlerPathFeature?.Path=="/index"){ExceptionMessage+=" from home page";}}}Exception Handler lambda除了使用Exception Handler Page之外,一定会有惊喜。你别不信,还可以使用lambda表达式来处理这个。例如:publicvoidConfigure(IApplicationBuilderapp,IWebHostEnvironmentenv){if(env.IsDevelopment()){app.UseDeveloperExceptionPage();}else{app.UseExceptionHandler(errorApp=>{errorApp.Run(asynccontext=>{context.Response.StatusCode=(int) HttpStatusCode.InternalServerError;;context.Response.ContentType="text/html";awaitcontext.Response.WriteAsync("\r\n");awaitcontext.Response.WriteAsync("ERROR!\r\n");varexceptionHandlerPathFeature=context.Features.Get();if(exceptionHandlerPathFeature?.ErrorisFileNotFoundException){awaitcontext.Response.WriteAsync("File error thrown!\r\n");}awaitcontext.Response.WriteAsync("Home\r\n");awaitcontext.Response.WriteAsync("\r\n");awaitcontext.Response.WriteAsync(newstring(' ',512));});});app.UseHsts();}app.UseHttpsRedirection();app.UseStaticFiles();app.UseRouting();app.UseAuthorization();app.UseEndpoints(endpoints=>{endpoints.MapRazorPages();});}Database error page可以引入服务用来监视数据操作的错误。publicvoidConfigureServices(IServiceCollectionservices){services.AddDbContext(options=>options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));services.AddDatabaseDeveloperPageExceptionFilter();services.AddDefaultIdentity(options=>options.SignIn.RequireConfirmedAccount=true).AddEntityFrameworkStores();services.AddRazorPages();}另外还有和 不过这些都会放在后面的高级分来学些。我们这个分还是以基础为主。往期文章目录:ASP.net Core基础AzureDeveloper,有很多人是不会仔细阅读产品说明书的,一个分享和学Azure技术的好去处,这导致明明产品有很多功能,但那些不认真阅读说明书的人用到的功能实际上并不多。

正所谓磨刀不误砍柴工,学 Java 我们不用着急写代码,先来看看 Java 程序的一些基本概念。

1、Java 的工作机制

我们需要了解的是,Java 程序的优势就是:一次编写,到处执行。什么意思呢?就是说,用 Java 语言编写的程序只要编写一次代码,然后这些 Java 代码就可以在任何支持 Java 虚拟机的设备上执行。举个例子,我们使用 Java 编写了一个邀请函系统,那么理论上最这个邀请函系统就可以在支持 Java 虚拟机的电脑、平板、手机、手表…甚至电饭煲上跑起来了。

既然 Java 程序这么牛,那么它背后的执行机制到底是怎么样的呢?

体来说,一个 Java 程序从诞生到执行会经历以下 4 个必经阶段:

a. 首先当然我们可爱的程序员同学们编写好 Java 代码,也就是编写好源代码文件;

b. 然后通过编译器运行源代码,编译器会检查基础的语法错误,有明显的语言错误时,编译时通不过的;

c. 编译通过后,编译器就会产生字节码文件,任何支持 Java 的设备就能够将这些字节码文件转译成可执行的内容;

d. 最后,设备中的 Java 虚拟机(通过软件实现)就可以愉快地执行这些经过编译的字节码了,这也意味着咱们的 Java 程序跑起来了。

2、Java 程序的结构

Java 程序是一种面向对象的语言,它的主体都由各种各样的类组成,而类就存在于程序员同学们编写的源代码文件中。类中包含着各种各样的方法,方法则由一条条具体的代码语句组成。

对于第一次接触 Java 的朋友来说,有必要了解下什么是 Java 中的源文件、类和方法?

源文件:拓展名为 .java 的带有类的定义的文件

类:用来表示程序的一个组成分,小的程序或许只有一个类,类的内容必须包在花括号里面。例如,下面个猫类:

方法:存在与类中,方法中可以指定类的相关指令,比如我可以在这个猫类中指定一个喵的方法:

语句:需要执行的具体指令,这些具体指令也就组成了方法,比如下面这些指令:

3、类的执行机制

当 Java 虚拟机启动时,它会马上寻找我们在命令列所指定的类,然后锁定类中的特定方法(main 方法),这是所有 Java 程序的开始。Java 虚拟机接着就会从上到下依次执行 main 方法中花括号的所有指令。顺便提一下,每个 Java 程序都会有一个类以及一个 main() 方法,而每个应用程序只有一个 main() 函数。

下面我们看张图,具体了解一下一个类:

好了,理论上,我们可以在 main 方法中做任何事情,这里面就是广程序员同学们发挥各自聪明才智的地方了哈。

到这里呢,我们就把 Java 程序中的一些最基本的概念了解了一下。下面我们来看一个简单的完整的 Java 程序:

这段小程序的执行结果如下(家可以脑补下程序的执行过程,挺有意思的):

每天进步一点点,慢慢来,比较快,peace!

谷歌android 平板怎么用

什么安卓系统最像ios

linux怎么设置网络打印

春天钓鱼有什么规定吗

邯郸韵达快递为什么不派送

游泳怎么翻转

贵阳麻将怎么玩初学

快手加入粉丝团级别怎么算

学会seo的网站有哪些

标签:java java虚拟机 编译器 代码 程序员